Index: . =================================================================== --- . (revision 1650429) +++ . (working copy) Property changes on: . ___________________________________________________________________ Modified: svn:mergeinfo Merged /hive/trunk:r1649691-1650429 Index: common/src/java/org/apache/hadoop/hive/conf/HiveConf.java =================================================================== --- common/src/java/org/apache/hadoop/hive/conf/HiveConf.java (revision 1650429) +++ common/src/java/org/apache/hadoop/hive/conf/HiveConf.java (working copy) @@ -421,6 +421,9 @@ "If true, the metastore Thrift interface will be secured with SASL. Clients must authenticate with Kerberos."), METASTORE_USE_THRIFT_FRAMED_TRANSPORT("hive.metastore.thrift.framed.transport.enabled", false, "If true, the metastore Thrift interface will use TFramedTransport. When false (default) a standard TTransport is used."), + METASTORE_USE_THRIFT_COMPACT_PROTOCOL("hive.metastore.thrift.compact.protocol.enabled", false, + "If true, the metastore Thrift interface will use TCompactProtocol. When false (default) TBinaryProtocol will be used.\n" + + "Setting it to true will break compatibility with older clients running TBinaryProtocol."), METASTORE_CLUSTER_DELEGATION_TOKEN_STORE_CLS("hive.cluster.delegation.token.store.class", "org.apache.hadoop.hive.thrift.MemoryTokenStore", "The delegation token store implementation. Set to org.apache.hadoop.hive.thrift.ZooKeeperTokenStore for load-balanced cluster."), @@ -486,6 +489,9 @@ METASTORE_PRE_EVENT_LISTENERS("hive.metastore.pre.event.listeners", "", "List of comma separated listeners for metastore events."), METASTORE_EVENT_LISTENERS("hive.metastore.event.listeners", "", ""), + METASTORE_EVENT_DB_LISTENER_TTL("hive.metastore.event.db.listener.timetolive", "86400s", + new TimeValidator(TimeUnit.SECONDS), + "time after which events will be removed from the database listener queue"), METASTORE_AUTHORIZATION_STORAGE_AUTH_CHECKS("hive.metastore.authorization.storage.checks", false, "Should the metastore do authorization checks against the underlying storage (usually hdfs) \n" + "for operations like drop-partition (disallow the drop-partition if the user in\n" + @@ -870,6 +876,11 @@ HIVE_RCFILE_TOLERATE_CORRUPTIONS("hive.io.rcfile.tolerate.corruptions", false, ""), HIVE_RCFILE_RECORD_BUFFER_SIZE("hive.io.rcfile.record.buffer.size", 4194304, ""), // 4M + PARQUET_MEMORY_POOL_RATIO("parquet.memory.pool.ratio", 0.5f, + "Maximum fraction of heap that can be used by Parquet file writers in one task.\n" + + "It is for avoiding OutOfMemory error in tasks. Work with Parquet 1.6.0 and above.\n" + + "This config parameter is defined in Parquet, so that it does not start with 'hive.'."), + HIVE_ORC_FILE_MEMORY_POOL("hive.exec.orc.memory.pool", 0.5f, "Maximum fraction of heap that can be used by ORC file writers"), HIVE_ORC_WRITE_FORMAT("hive.exec.orc.write.format", null, Index: hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseStorageHandler.java =================================================================== --- hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseStorageHandler.java (revision 1650429) +++ hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseStorageHandler.java (working copy) @@ -488,6 +488,14 @@ } } + private static Class counterClass = null; + static { + try { + counterClass = Class.forName("org.cliffc.high_scale_lib.Counter"); + } catch (ClassNotFoundException cnfe) { + // this dependency is removed for HBase 1.0 + } + } @Override public void configureJobConf(TableDesc tableDesc, JobConf jobConf) { try { @@ -498,9 +506,13 @@ * will not be required once Hive bumps up its hbase version). At that time , we will * only need TableMapReduceUtil.addDependencyJars(jobConf) here. */ - TableMapReduceUtil.addDependencyJars( - jobConf, HBaseStorageHandler.class, TableInputFormatBase.class, - org.cliffc.high_scale_lib.Counter.class); // this will be removed for HBase 1.0 + if (counterClass != null) { + TableMapReduceUtil.addDependencyJars( + jobConf, HBaseStorageHandler.class, TableInputFormatBase.class, counterClass); + } else { + TableMapReduceUtil.addDependencyJars( + jobConf, HBaseStorageHandler.class, TableInputFormatBase.class); + } Set merged = new LinkedHashSet(jobConf.getStringCollection("tmpjars")); Job copy = new Job(jobConf); Index: hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/listener/DbNotificationListener.java =================================================================== --- hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/listener/DbNotificationListener.java (revision 0) +++ hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/listener/DbNotificationListener.java (working copy) @@ -0,0 +1,282 @@ +/** + * 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.hive.hcatalog.listener; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.conf.HiveConf; +import org.apache.hadoop.hive.metastore.MetaStoreEventListener; +import org.apache.hadoop.hive.metastore.RawStore; +import org.apache.hadoop.hive.metastore.RawStoreProxy; +import org.apache.hadoop.hive.metastore.api.Database; +import org.apache.hadoop.hive.metastore.api.MetaException; +import org.apache.hadoop.hive.metastore.api.NotificationEvent; +import org.apache.hadoop.hive.metastore.api.Table; +import org.apache.hadoop.hive.metastore.events.AddPartitionEvent; +import org.apache.hadoop.hive.metastore.events.AlterPartitionEvent; +import org.apache.hadoop.hive.metastore.events.AlterTableEvent; +import org.apache.hadoop.hive.metastore.events.ConfigChangeEvent; +import org.apache.hadoop.hive.metastore.events.CreateDatabaseEvent; +import org.apache.hadoop.hive.metastore.events.CreateTableEvent; +import org.apache.hadoop.hive.metastore.events.DropDatabaseEvent; +import org.apache.hadoop.hive.metastore.events.DropPartitionEvent; +import org.apache.hadoop.hive.metastore.events.DropTableEvent; +import org.apache.hadoop.hive.metastore.events.LoadPartitionDoneEvent; +import org.apache.hive.hcatalog.common.HCatConstants; +import org.apache.hive.hcatalog.messaging.MessageFactory; + +import java.util.ArrayDeque; +import java.util.Queue; +import java.util.concurrent.TimeUnit; + +/** + * An implementation of {@link org.apache.hadoop.hive.metastore.MetaStoreEventListener} that + * stores events in the database. + * + * Design overview: This listener takes any event, builds a NotificationEventResponse, + * and puts it on a queue. There is a dedicated thread that reads entries from the queue and + * places them in the database. The reason for doing it in a separate thread is that we want to + * avoid slowing down other metadata operations with the work of putting the notification into + * the database. Also, occasionally the thread needs to clean the database of old records. We + * definitely don't want to do that as part of another metadata operation. + */ +public class DbNotificationListener extends MetaStoreEventListener { + + private static final Log LOG = LogFactory.getLog(DbNotificationListener.class.getName()); + private static CleanerThread cleaner = null; + + // This is the same object as super.conf, but it's convenient to keep a copy of it as a + // HiveConf rather than a Configuration. + private HiveConf hiveConf; + private MessageFactory msgFactory; + private RawStore rs; + + private synchronized void init(HiveConf conf) { + try { + rs = RawStoreProxy.getProxy(conf, conf, + conf.getVar(HiveConf.ConfVars.METASTORE_RAW_STORE_IMPL), 999999); + } catch (MetaException e) { + LOG.error("Unable to connect to raw store, notifications will not be tracked", e); + rs = null; + } + if (cleaner == null && rs != null) { + cleaner = new CleanerThread(conf, rs); + cleaner.start(); + } + } + + public DbNotificationListener(Configuration config) { + super(config); + // The code in MetastoreUtils.getMetaStoreListeners() that calls this looks for a constructor + // with a Configuration parameter, so we have to declare config as Configuration. But it + // actually passes a HiveConf, which we need. So we'll do this ugly down cast. + hiveConf = (HiveConf)config; + init(hiveConf); + msgFactory = MessageFactory.getInstance(); + } + + /** + * @param tableEvent table event. + * @throws org.apache.hadoop.hive.metastore.api.MetaException + */ + public void onConfigChange(ConfigChangeEvent tableEvent) throws MetaException { + String key = tableEvent.getKey(); + if (key.equals(HiveConf.ConfVars.METASTORE_EVENT_DB_LISTENER_TTL.toString())) { + // This weirdness of setting it in our hiveConf and then reading back does two things. + // One, it handles the conversion of the TimeUnit. Two, it keeps the value around for + // later in case we need it again. + hiveConf.set(HiveConf.ConfVars.METASTORE_EVENT_DB_LISTENER_TTL.name(), + tableEvent.getNewValue()); + cleaner.setTimeToLive(hiveConf.getTimeVar(HiveConf.ConfVars.METASTORE_EVENT_DB_LISTENER_TTL, + TimeUnit.SECONDS)); + } + } + + /** + * @param tableEvent table event. + * @throws MetaException + */ + public void onCreateTable (CreateTableEvent tableEvent) throws MetaException { + Table t = tableEvent.getTable(); + NotificationEvent event = new NotificationEvent(0, now(), + HCatConstants.HCAT_CREATE_TABLE_EVENT, msgFactory.buildCreateTableMessage(t).toString()); + event.setDbName(t.getDbName()); + // Table name is not set in create table because this goes on the queue for the database the + // table is created in, not the (new) queue for the table itself. + enqueue(event); + } + + /** + * @param tableEvent table event. + * @throws MetaException + */ + public void onDropTable (DropTableEvent tableEvent) throws MetaException { + Table t = tableEvent.getTable(); + NotificationEvent event = new NotificationEvent(0, now(), + HCatConstants.HCAT_DROP_TABLE_EVENT, msgFactory.buildDropTableMessage(t).toString()); + event.setDbName(t.getDbName()); + event.setTableName(t.getTableName()); + enqueue(event); + } + + /** + * @param tableEvent alter table event + * @throws MetaException + */ + public void onAlterTable (AlterTableEvent tableEvent) throws MetaException { + /*Table before = tableEvent.getOldTable(); + Table after = tableEvent.getNewTable(); + NotificationEvent event = new NotificationEvent(0, now(), + HCatConstants.HCAT_ALTER_TABLE_EVENT, + msgFactory.buildAlterTableMessage(before, after).toString()); + if (event != null) { + event.setDbName(after.getDbName()); + event.setTableName(after.getTableName()); + enqueue(event); + }*/ + // TODO - once HIVE-9175 is committed + } + + /** + * @param partitionEvent partition event + * @throws MetaException + */ + public void onAddPartition (AddPartitionEvent partitionEvent) + throws MetaException { + Table t = partitionEvent.getTable(); + NotificationEvent event = new NotificationEvent(0, now(), + HCatConstants.HCAT_ADD_PARTITION_EVENT, + msgFactory.buildAddPartitionMessage(t, partitionEvent.getPartitions()).toString()); + event.setDbName(t.getDbName()); + event.setTableName(t.getTableName()); + enqueue(event); + } + + /** + * @param partitionEvent partition event + * @throws MetaException + */ + public void onDropPartition (DropPartitionEvent partitionEvent) throws MetaException { + Table t = partitionEvent.getTable(); + NotificationEvent event = new NotificationEvent(0, now(), + HCatConstants.HCAT_DROP_PARTITION_EVENT, + msgFactory.buildDropPartitionMessage(t, partitionEvent.getPartition()).toString()); + event.setDbName(t.getDbName()); + event.setTableName(t.getTableName()); + enqueue(event); + } + + /** + * @param partitionEvent partition event + * @throws MetaException + */ + public void onAlterPartition (AlterPartitionEvent partitionEvent) throws MetaException { + // TODO, MessageFactory doesn't support Alter Partition yet. + } + + /** + * @param dbEvent database event + * @throws MetaException + */ + public void onCreateDatabase (CreateDatabaseEvent dbEvent) throws MetaException { + Database db = dbEvent.getDatabase(); + NotificationEvent event = new NotificationEvent(0, now(), + HCatConstants.HCAT_CREATE_DATABASE_EVENT, + msgFactory.buildCreateDatabaseMessage(db).toString()); + // Database name is null for create database, because this doesn't belong to messages for + // that database. Rather it belongs to system wide messages. The db name is in the message, + // so listeners can determine it. + enqueue(event); + } + + /** + * @param dbEvent database event + * @throws MetaException + */ + public void onDropDatabase (DropDatabaseEvent dbEvent) throws MetaException { + Database db = dbEvent.getDatabase(); + NotificationEvent event = new NotificationEvent(0, now(), + HCatConstants.HCAT_DROP_DATABASE_EVENT, + msgFactory.buildDropDatabaseMessage(db).toString()); + event.setDbName(db.getName()); + enqueue(event); + } + + /** + * @param partSetDoneEvent + * @throws MetaException + */ + public void onLoadPartitionDone(LoadPartitionDoneEvent partSetDoneEvent) throws MetaException { + // TODO, we don't support this, but we should, since users may create an empty partition and + // then load data into it. + + } + + private int now() { + long millis = System.currentTimeMillis(); + millis /= 1000; + if (millis > Integer.MAX_VALUE) { + LOG.warn("We've passed max int value in seconds since the epoch, " + + "all notification times will be the same!"); + return Integer.MAX_VALUE; + } + return (int)millis; + } + + private void enqueue(NotificationEvent event) { + if (rs != null) { + rs.addNotificationEvent(event); + } else { + LOG.warn("Dropping event " + event + " since notification is not running."); + } + } + + private static class CleanerThread extends Thread { + private RawStore rs; + private int ttl; + + + CleanerThread(HiveConf conf, RawStore rs) { + super("CleanerThread"); + this.rs = rs; + setTimeToLive(conf.getTimeVar(HiveConf.ConfVars.METASTORE_EVENT_DB_LISTENER_TTL, + TimeUnit.SECONDS)); + setDaemon(true); + } + + @Override + public void run() { + while (true) { + rs.cleanNotificationEvents(ttl); + try { + Thread.sleep(60000); + } catch (InterruptedException e) { + LOG.info("Cleaner thread sleep interupted", e); + } + } + } + + public void setTimeToLive(long configTtl) { + if (configTtl > Integer.MAX_VALUE) ttl = Integer.MAX_VALUE; + else ttl = (int)configTtl; + } + + } + +} Index: hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONMessageFactory.java =================================================================== --- hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONMessageFactory.java (revision 1650429) +++ hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/messaging/json/JSONMessageFactory.java (working copy) @@ -19,13 +19,18 @@ package org.apache.hive.hcatalog.messaging.json; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hive.common.classification.InterfaceAudience; import org.apache.hadoop.hive.common.classification.InterfaceStability; import org.apache.hadoop.hive.metastore.api.Database; +import org.apache.hadoop.hive.metastore.api.FieldSchema; import org.apache.hadoop.hive.metastore.api.Partition; import org.apache.hadoop.hive.metastore.api.Table; import org.apache.hadoop.hive.metastore.partition.spec.PartitionSpecProxy; import org.apache.hive.hcatalog.messaging.AddPartitionMessage; +// TODO, once HIVE-9175 is committed +// import org.apache.hive.hcatalog.messaging.AlterTableMessage; import org.apache.hive.hcatalog.messaging.CreateDatabaseMessage; import org.apache.hive.hcatalog.messaging.CreateTableMessage; import org.apache.hive.hcatalog.messaging.DropDatabaseMessage; @@ -42,6 +47,9 @@ */ public class JSONMessageFactory extends MessageFactory { + private static final Log LOG = LogFactory.getLog(JSONMessageFactory.class.getName()); + + private static JSONMessageDeserializer deserializer = new JSONMessageDeserializer(); @Override @@ -62,31 +70,40 @@ @Override public CreateDatabaseMessage buildCreateDatabaseMessage(Database db) { return new JSONCreateDatabaseMessage(HCAT_SERVER_URL, HCAT_SERVICE_PRINCIPAL, db.getName(), - System.currentTimeMillis() / 1000); + now()); } @Override public DropDatabaseMessage buildDropDatabaseMessage(Database db) { return new JSONDropDatabaseMessage(HCAT_SERVER_URL, HCAT_SERVICE_PRINCIPAL, db.getName(), - System.currentTimeMillis() / 1000); + now()); } @Override public CreateTableMessage buildCreateTableMessage(Table table) { return new JSONCreateTableMessage(HCAT_SERVER_URL, HCAT_SERVICE_PRINCIPAL, table.getDbName(), - table.getTableName(), System.currentTimeMillis()/1000); + table.getTableName(), now()); } + // TODO Once HIVE-9175 is committed + /* @Override + public AlterTableMessage buildAlterTableMessage(Table before, Table after) { + return new JSONAlterTableMessage(HCAT_SERVER_URL, HCAT_SERVICE_PRINCIPAL, before.getDbName(), + before.getTableName(), now()); + } + */ + + @Override public DropTableMessage buildDropTableMessage(Table table) { return new JSONDropTableMessage(HCAT_SERVER_URL, HCAT_SERVICE_PRINCIPAL, table.getDbName(), table.getTableName(), - System.currentTimeMillis()/1000); + now()); } @Override public AddPartitionMessage buildAddPartitionMessage(Table table, List partitions) { return new JSONAddPartitionMessage(HCAT_SERVER_URL, HCAT_SERVICE_PRINCIPAL, table.getDbName(), - table.getTableName(), getPartitionKeyValues(table, partitions), System.currentTimeMillis()/1000); + table.getTableName(), getPartitionKeyValues(table, partitions), now()); } @Override @@ -100,10 +117,13 @@ @Override public DropPartitionMessage buildDropPartitionMessage(Table table, Partition partition) { return new JSONDropPartitionMessage(HCAT_SERVER_URL, HCAT_SERVICE_PRINCIPAL, partition.getDbName(), - partition.getTableName(), Arrays.asList(getPartitionKeyValues(table, partition)), - System.currentTimeMillis()/1000); + partition.getTableName(), Arrays.asList(getPartitionKeyValues(table, partition)), now()); } + private long now() { + return System.currentTimeMillis() / 1000; + } + private static Map getPartitionKeyValues(Table table, Partition partition) { Map partitionKeys = new LinkedHashMap(); for (int i=0; itest + org.apache.hive.hcatalog + hive-hcatalog-server-extensions + ${project.version} + test + + org.apache.hive hive-hbase-handler ${project.version} Index: itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java =================================================================== --- itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java (revision 0) +++ itests/hcatalog-unit/src/test/java/org/apache/hive/hcatalog/listener/TestDbNotificationListener.java (working copy) @@ -0,0 +1,317 @@ +/** + * 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.hive.hcatalog.listener; + +import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertNull; +import static junit.framework.Assert.assertTrue; +import static junit.framework.Assert.fail; + +import junit.framework.Assert; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.hive.conf.HiveConf; +import org.apache.hadoop.hive.metastore.HiveMetaStoreClient; +import org.apache.hadoop.hive.metastore.IMetaStoreClient; +import org.apache.hadoop.hive.metastore.api.Database; +import org.apache.hadoop.hive.metastore.api.FieldSchema; +import org.apache.hadoop.hive.metastore.api.NotificationEvent; +import org.apache.hadoop.hive.metastore.api.NotificationEventResponse; +import org.apache.hadoop.hive.metastore.api.Partition; +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.serde2.typeinfo.TypeInfoFactory; +import org.apache.hive.hcatalog.common.HCatConstants; +import org.apache.hive.hcatalog.data.schema.HCatFieldSchema; +import org.apache.hive.hcatalog.listener.DbNotificationListener; +import org.apache.hive.hcatalog.messaging.HCatEventMessage; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TestDbNotificationListener { + + private static final Log LOG = LogFactory.getLog(TestDbNotificationListener.class.getName()); + private static Map emptyParameters = new HashMap(); + private static IMetaStoreClient msClient; + private int startTime; + private long firstEventId; + + @BeforeClass + public static void connectToMetastore() throws Exception { + HiveConf conf = new HiveConf(); + conf.setVar(HiveConf.ConfVars.METASTORE_EVENT_LISTENERS, + DbNotificationListener.class.getName()); + msClient = new HiveMetaStoreClient(conf); + } + + @Before + public void setup() throws Exception { + long now = System.currentTimeMillis() / 1000; + startTime = 0; + if (now > Integer.MAX_VALUE) fail("Bummer, time has fallen over the edge"); + else startTime = (int) now; + firstEventId = msClient.getCurrentNotificationEventId().getEventId(); + } + + @Test + public void createDatabase() throws Exception { + Database db = new Database("mydb", "no description", "file:/tmp", emptyParameters); + msClient.createDatabase(db); + + NotificationEventResponse rsp = msClient.getNextNotification(firstEventId, 0, null); + assertEquals(1, rsp.getEventsSize()); + + NotificationEvent event = rsp.getEvents().get(0); + assertEquals(firstEventId + 1, event.getEventId()); + assertTrue(event.getEventTime() >= startTime); + assertEquals(HCatConstants.HCAT_CREATE_DATABASE_EVENT, event.getEventType()); + assertNull(event.getDbName()); + assertNull(event.getTableName()); + assertTrue(event.getMessage().matches("\\{\"eventType\":\"CREATE_DATABASE\",\"server\":\"\"," + + "\"servicePrincipal\":\"\",\"db\":\"mydb\",\"timestamp\":[0-9]+}")); + } + + @Test + public void dropDatabase() throws Exception { + Database db = new Database("dropdb", "no description", "file:/tmp", emptyParameters); + msClient.createDatabase(db); + msClient.dropDatabase("dropdb"); + + NotificationEventResponse rsp = msClient.getNextNotification(firstEventId, 0, null); + assertEquals(2, rsp.getEventsSize()); + + NotificationEvent event = rsp.getEvents().get(1); + assertEquals(firstEventId + 2, event.getEventId()); + assertTrue(event.getEventTime() >= startTime); + assertEquals(HCatConstants.HCAT_DROP_DATABASE_EVENT, event.getEventType()); + assertEquals("dropdb", event.getDbName()); + assertNull(event.getTableName()); + assertTrue(event.getMessage().matches("\\{\"eventType\":\"DROP_DATABASE\",\"server\":\"\"," + + "\"servicePrincipal\":\"\",\"db\":\"dropdb\",\"timestamp\":[0-9]+}")); + } + + @Test + public void createTable() throws Exception { + List cols = new ArrayList(); + cols.add(new FieldSchema("col1", "int", "nocomment")); + SerDeInfo serde = new SerDeInfo("serde", "seriallib", null); + StorageDescriptor sd = new StorageDescriptor(cols, "file:/tmp", "input", "output", false, 0, + serde, null, null, emptyParameters); + Table table = new Table("mytable", "default", "me", startTime, startTime, 0, sd, null, + emptyParameters, null, null, null); + msClient.createTable(table); + + NotificationEventResponse rsp = msClient.getNextNotification(firstEventId, 0, null); + assertEquals(1, rsp.getEventsSize()); + + NotificationEvent event = rsp.getEvents().get(0); + assertEquals(firstEventId + 1, event.getEventId()); + assertTrue(event.getEventTime() >= startTime); + assertEquals(HCatConstants.HCAT_CREATE_TABLE_EVENT, event.getEventType()); + assertEquals("default", event.getDbName()); + assertNull(event.getTableName()); + assertTrue(event.getMessage().matches("\\{\"eventType\":\"CREATE_TABLE\",\"server\":\"\"," + + "\"servicePrincipal\":\"\",\"db\":\"default\",\"table\":\"mytable\",\"timestamp\":[0-9]+}")); + } + + // TODO After HIVE-9175 is committed + /* + @Test + public void alterTable() throws Exception { + List cols = new ArrayList(); + cols.add(new FieldSchema("col1", "int", "nocomment")); + SerDeInfo serde = new SerDeInfo("serde", "seriallib", null); + StorageDescriptor sd = new StorageDescriptor(cols, "file:/tmp", "input", "output", false, 0, + serde, null, null, emptyParameters); + Table table = new Table("alttable", "default", "me", startTime, startTime, 0, sd, null, + emptyParameters, null, null, null); + msClient.createTable(table); + + table = new Table("alttable", "default", "me", startTime, startTime + 1, 0, sd, null, + emptyParameters, null, null, null); + msClient.alter_table("default", "alttable", table); + + NotificationEventResponse rsp = msClient.getNextNotification(firstEventId, 0, null); + assertEquals(2, rsp.getEventsSize()); + + NotificationEvent event = rsp.getEvents().get(1); + assertEquals(firstEventId + 2, event.getEventId()); + assertTrue(event.getEventTime() >= startTime); + assertEquals(HCatConstants.HCAT_ALTER_TABLE_EVENT, event.getEventType()); + assertEquals("default", event.getDbName()); + assertEquals("alttable", event.getTableName()); + assertTrue(event.getMessage().matches("\\{\"eventType\":\"ALTER_TABLE\",\"server\":\"\"," + + "\"servicePrincipal\":\"\",\"db\":\"default\",\"table\":\"alttable\"," + + "\"timestamp\":[0-9]+}")); + } + */ + + @Test + public void dropTable() throws Exception { + List cols = new ArrayList(); + cols.add(new FieldSchema("col1", "int", "nocomment")); + SerDeInfo serde = new SerDeInfo("serde", "seriallib", null); + StorageDescriptor sd = new StorageDescriptor(cols, "file:/tmp", "input", "output", false, 0, + serde, null, null, emptyParameters); + Table table = new Table("droptable", "default", "me", startTime, startTime, 0, sd, null, + emptyParameters, null, null, null); + msClient.createTable(table); + msClient.dropTable("default", "droptable"); + + NotificationEventResponse rsp = msClient.getNextNotification(firstEventId, 0, null); + assertEquals(2, rsp.getEventsSize()); + + NotificationEvent event = rsp.getEvents().get(1); + assertEquals(firstEventId + 2, event.getEventId()); + assertTrue(event.getEventTime() >= startTime); + assertEquals(HCatConstants.HCAT_DROP_TABLE_EVENT, event.getEventType()); + assertEquals("default", event.getDbName()); + assertEquals("droptable", event.getTableName()); + assertTrue(event.getMessage().matches("\\{\"eventType\":\"DROP_TABLE\",\"server\":\"\"," + + "\"servicePrincipal\":\"\",\"db\":\"default\",\"table\":" + + "\"droptable\",\"timestamp\":[0-9]+}")); + } + + @Test + public void addPartition() throws Exception { + List cols = new ArrayList(); + cols.add(new FieldSchema("col1", "int", "nocomment")); + List partCols = new ArrayList(); + partCols.add(new FieldSchema("ds", "string", "")); + SerDeInfo serde = new SerDeInfo("serde", "seriallib", null); + StorageDescriptor sd = new StorageDescriptor(cols, "file:/tmp", "input", "output", false, 0, + serde, null, null, emptyParameters); + Table table = new Table("addPartTable", "default", "me", startTime, startTime, 0, sd, partCols, + emptyParameters, null, null, null); + msClient.createTable(table); + + Partition partition = new Partition(Arrays.asList("today"), "default", "addPartTable", + startTime, startTime, sd, emptyParameters); + msClient.add_partition(partition); + + NotificationEventResponse rsp = msClient.getNextNotification(firstEventId, 0, null); + assertEquals(2, rsp.getEventsSize()); + + NotificationEvent event = rsp.getEvents().get(1); + assertEquals(firstEventId + 2, event.getEventId()); + assertTrue(event.getEventTime() >= startTime); + assertEquals(HCatConstants.HCAT_ADD_PARTITION_EVENT, event.getEventType()); + assertEquals("default", event.getDbName()); + assertEquals("addparttable", event.getTableName()); + assertTrue(event.getMessage().matches("\\{\"eventType\":\"ADD_PARTITION\",\"server\":\"\"," + + "\"servicePrincipal\":\"\",\"db\":\"default\",\"table\":" + + "\"addparttable\",\"timestamp\":[0-9]+,\"partitions\":\\[\\{\"ds\":\"today\"}]}")); + } + + @Test + public void dropPartition() throws Exception { + List cols = new ArrayList(); + cols.add(new FieldSchema("col1", "int", "nocomment")); + List partCols = new ArrayList(); + partCols.add(new FieldSchema("ds", "string", "")); + SerDeInfo serde = new SerDeInfo("serde", "seriallib", null); + StorageDescriptor sd = new StorageDescriptor(cols, "file:/tmp", "input", "output", false, 0, + serde, null, null, emptyParameters); + Table table = new Table("dropPartTable", "default", "me", startTime, startTime, 0, sd, partCols, + emptyParameters, null, null, null); + msClient.createTable(table); + + Partition partition = new Partition(Arrays.asList("today"), "default", "dropPartTable", + startTime, startTime, sd, emptyParameters); + msClient.add_partition(partition); + + msClient.dropPartition("default", "dropparttable", Arrays.asList("today"), false); + + NotificationEventResponse rsp = msClient.getNextNotification(firstEventId, 0, null); + assertEquals(3, rsp.getEventsSize()); + + NotificationEvent event = rsp.getEvents().get(2); + assertEquals(firstEventId + 3, event.getEventId()); + assertTrue(event.getEventTime() >= startTime); + assertEquals(HCatConstants.HCAT_DROP_PARTITION_EVENT, event.getEventType()); + assertEquals("default", event.getDbName()); + assertEquals("dropparttable", event.getTableName()); + assertTrue(event.getMessage().matches("\\{\"eventType\":\"DROP_PARTITION\",\"server\":\"\"," + + "\"servicePrincipal\":\"\",\"db\":\"default\",\"table\":" + + "\"dropparttable\",\"timestamp\":[0-9]+,\"partitions\":\\[\\{\"ds\":\"today\"}]}")); + } + + @Test + public void getOnlyMaxEvents() throws Exception { + Database db = new Database("db1", "no description", "file:/tmp", emptyParameters); + msClient.createDatabase(db); + db = new Database("db2", "no description", "file:/tmp", emptyParameters); + msClient.createDatabase(db); + db = new Database("db3", "no description", "file:/tmp", emptyParameters); + msClient.createDatabase(db); + + NotificationEventResponse rsp = msClient.getNextNotification(firstEventId, 2, null); + assertEquals(2, rsp.getEventsSize()); + assertEquals(firstEventId + 1, rsp.getEvents().get(0).getEventId()); + assertEquals(firstEventId + 2, rsp.getEvents().get(1).getEventId()); + } + + @Test + public void filter() throws Exception { + Database db = new Database("f1", "no description", "file:/tmp", emptyParameters); + msClient.createDatabase(db); + db = new Database("f2", "no description", "file:/tmp", emptyParameters); + msClient.createDatabase(db); + msClient.dropDatabase("f2"); + + IMetaStoreClient.NotificationFilter filter = new IMetaStoreClient.NotificationFilter() { + @Override + public boolean accept(NotificationEvent event) { + return event.getEventType().equals(HCatConstants.HCAT_DROP_DATABASE_EVENT); + } + }; + + NotificationEventResponse rsp = msClient.getNextNotification(firstEventId, 0, filter); + assertEquals(1, rsp.getEventsSize()); + assertEquals(firstEventId + 3, rsp.getEvents().get(0).getEventId()); + } + + @Test + public void filterWithMax() throws Exception { + Database db = new Database("f10", "no description", "file:/tmp", emptyParameters); + msClient.createDatabase(db); + db = new Database("f11", "no description", "file:/tmp", emptyParameters); + msClient.createDatabase(db); + msClient.dropDatabase("f11"); + + IMetaStoreClient.NotificationFilter filter = new IMetaStoreClient.NotificationFilter() { + @Override + public boolean accept(NotificationEvent event) { + return event.getEventType().equals(HCatConstants.HCAT_CREATE_DATABASE_EVENT); + } + }; + + NotificationEventResponse rsp = msClient.getNextNotification(firstEventId, 1, filter); + assertEquals(1, rsp.getEventsSize()); + assertEquals(firstEventId + 1, rsp.getEvents().get(0).getEventId()); + } +} \ No newline at end of file Index: itests/src/test/resources/testconfiguration.properties =================================================================== --- itests/src/test/resources/testconfiguration.properties (revision 1650429) +++ itests/src/test/resources/testconfiguration.properties (working copy) @@ -178,6 +178,7 @@ vector_bucket.q,\ vector_cast_constant.q,\ vector_char_4.q,\ + vector_char_mapjoin1.q,\ vector_char_simple.q,\ vector_coalesce.q,\ vector_coalesce_2.q,\ @@ -212,6 +213,7 @@ vector_reduce_groupby_decimal.q,\ vector_string_concat.q,\ vector_varchar_4.q,\ + vector_varchar_mapjoin1.q,\ vector_varchar_simple.q,\ vectorization_0.q,\ vectorization_1.q,\ Index: metastore/if/hive_metastore.thrift =================================================================== --- metastore/if/hive_metastore.thrift (revision 1650429) +++ metastore/if/hive_metastore.thrift (working copy) @@ -642,6 +642,29 @@ 1: required list compacts, } +struct NotificationEventRequest { + 1: required i64 lastEvent, + 2: optional i32 maxEvents, +} + +struct NotificationEvent { + 1: required i64 eventId, + 2: required i32 eventTime, + 3: required string eventType, + 4: optional string dbName, + 5: optional string tableName, + 6: required string message, +} + +struct NotificationEventResponse { + 1: required list events, +} + +struct CurrentNotificationEventId { + 1: required i64 eventId, +} + + exception MetaException { 1: string message } @@ -1107,6 +1130,10 @@ HeartbeatTxnRangeResponse heartbeat_txn_range(1:HeartbeatTxnRangeRequest txns) void compact(1:CompactionRequest rqst) ShowCompactResponse show_compact(1:ShowCompactRequest rqst) + + // Notification logging calls + NotificationEventResponse getNextNotification(1:NotificationEventRequest rqst) + CurrentNotificationEventId getCurrentNotificationEventId() } // * Note about the DDL_TIME: When creating or altering a table or a partition, Index: metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp =================================================================== --- metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp (revision 1650429) +++ metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp (working copy) @@ -1096,14 +1096,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size401; - ::apache::thrift::protocol::TType _etype404; - xfer += iprot->readListBegin(_etype404, _size401); - this->success.resize(_size401); - uint32_t _i405; - for (_i405 = 0; _i405 < _size401; ++_i405) + uint32_t _size407; + ::apache::thrift::protocol::TType _etype410; + xfer += iprot->readListBegin(_etype410, _size407); + this->success.resize(_size407); + uint32_t _i411; + for (_i411 = 0; _i411 < _size407; ++_i411) { - xfer += iprot->readString(this->success[_i405]); + xfer += iprot->readString(this->success[_i411]); } xfer += iprot->readListEnd(); } @@ -1142,10 +1142,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 _iter406; - for (_iter406 = this->success.begin(); _iter406 != this->success.end(); ++_iter406) + std::vector ::const_iterator _iter412; + for (_iter412 = this->success.begin(); _iter412 != this->success.end(); ++_iter412) { - xfer += oprot->writeString((*_iter406)); + xfer += oprot->writeString((*_iter412)); } xfer += oprot->writeListEnd(); } @@ -1184,14 +1184,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size407; - ::apache::thrift::protocol::TType _etype410; - xfer += iprot->readListBegin(_etype410, _size407); - (*(this->success)).resize(_size407); - uint32_t _i411; - for (_i411 = 0; _i411 < _size407; ++_i411) + uint32_t _size413; + ::apache::thrift::protocol::TType _etype416; + xfer += iprot->readListBegin(_etype416, _size413); + (*(this->success)).resize(_size413); + uint32_t _i417; + for (_i417 = 0; _i417 < _size413; ++_i417) { - xfer += iprot->readString((*(this->success))[_i411]); + xfer += iprot->readString((*(this->success))[_i417]); } xfer += iprot->readListEnd(); } @@ -1289,14 +1289,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size412; - ::apache::thrift::protocol::TType _etype415; - xfer += iprot->readListBegin(_etype415, _size412); - this->success.resize(_size412); - uint32_t _i416; - for (_i416 = 0; _i416 < _size412; ++_i416) + uint32_t _size418; + ::apache::thrift::protocol::TType _etype421; + xfer += iprot->readListBegin(_etype421, _size418); + this->success.resize(_size418); + uint32_t _i422; + for (_i422 = 0; _i422 < _size418; ++_i422) { - xfer += iprot->readString(this->success[_i416]); + xfer += iprot->readString(this->success[_i422]); } xfer += iprot->readListEnd(); } @@ -1335,10 +1335,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 _iter417; - for (_iter417 = this->success.begin(); _iter417 != this->success.end(); ++_iter417) + std::vector ::const_iterator _iter423; + for (_iter423 = this->success.begin(); _iter423 != this->success.end(); ++_iter423) { - xfer += oprot->writeString((*_iter417)); + xfer += oprot->writeString((*_iter423)); } xfer += oprot->writeListEnd(); } @@ -1377,14 +1377,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size418; - ::apache::thrift::protocol::TType _etype421; - xfer += iprot->readListBegin(_etype421, _size418); - (*(this->success)).resize(_size418); - uint32_t _i422; - for (_i422 = 0; _i422 < _size418; ++_i422) + uint32_t _size424; + ::apache::thrift::protocol::TType _etype427; + xfer += iprot->readListBegin(_etype427, _size424); + (*(this->success)).resize(_size424); + uint32_t _i428; + for (_i428 = 0; _i428 < _size424; ++_i428) { - xfer += iprot->readString((*(this->success))[_i422]); + xfer += iprot->readString((*(this->success))[_i428]); } xfer += iprot->readListEnd(); } @@ -2327,17 +2327,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { this->success.clear(); - uint32_t _size423; - ::apache::thrift::protocol::TType _ktype424; - ::apache::thrift::protocol::TType _vtype425; - xfer += iprot->readMapBegin(_ktype424, _vtype425, _size423); - uint32_t _i427; - for (_i427 = 0; _i427 < _size423; ++_i427) + uint32_t _size429; + ::apache::thrift::protocol::TType _ktype430; + ::apache::thrift::protocol::TType _vtype431; + xfer += iprot->readMapBegin(_ktype430, _vtype431, _size429); + uint32_t _i433; + for (_i433 = 0; _i433 < _size429; ++_i433) { - std::string _key428; - xfer += iprot->readString(_key428); - Type& _val429 = this->success[_key428]; - xfer += _val429.read(iprot); + std::string _key434; + xfer += iprot->readString(_key434); + Type& _val435 = this->success[_key434]; + xfer += _val435.read(iprot); } xfer += iprot->readMapEnd(); } @@ -2376,11 +2376,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 _iter430; - for (_iter430 = this->success.begin(); _iter430 != this->success.end(); ++_iter430) + std::map ::const_iterator _iter436; + for (_iter436 = this->success.begin(); _iter436 != this->success.end(); ++_iter436) { - xfer += oprot->writeString(_iter430->first); - xfer += _iter430->second.write(oprot); + xfer += oprot->writeString(_iter436->first); + xfer += _iter436->second.write(oprot); } xfer += oprot->writeMapEnd(); } @@ -2419,17 +2419,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { (*(this->success)).clear(); - uint32_t _size431; - ::apache::thrift::protocol::TType _ktype432; - ::apache::thrift::protocol::TType _vtype433; - xfer += iprot->readMapBegin(_ktype432, _vtype433, _size431); - uint32_t _i435; - for (_i435 = 0; _i435 < _size431; ++_i435) + uint32_t _size437; + ::apache::thrift::protocol::TType _ktype438; + ::apache::thrift::protocol::TType _vtype439; + xfer += iprot->readMapBegin(_ktype438, _vtype439, _size437); + uint32_t _i441; + for (_i441 = 0; _i441 < _size437; ++_i441) { - std::string _key436; - xfer += iprot->readString(_key436); - Type& _val437 = (*(this->success))[_key436]; - xfer += _val437.read(iprot); + std::string _key442; + xfer += iprot->readString(_key442); + Type& _val443 = (*(this->success))[_key442]; + xfer += _val443.read(iprot); } xfer += iprot->readMapEnd(); } @@ -2564,14 +2564,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size438; - ::apache::thrift::protocol::TType _etype441; - xfer += iprot->readListBegin(_etype441, _size438); - this->success.resize(_size438); - uint32_t _i442; - for (_i442 = 0; _i442 < _size438; ++_i442) + uint32_t _size444; + ::apache::thrift::protocol::TType _etype447; + xfer += iprot->readListBegin(_etype447, _size444); + this->success.resize(_size444); + uint32_t _i448; + for (_i448 = 0; _i448 < _size444; ++_i448) { - xfer += this->success[_i442].read(iprot); + xfer += this->success[_i448].read(iprot); } xfer += iprot->readListEnd(); } @@ -2626,10 +2626,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 _iter443; - for (_iter443 = this->success.begin(); _iter443 != this->success.end(); ++_iter443) + std::vector ::const_iterator _iter449; + for (_iter449 = this->success.begin(); _iter449 != this->success.end(); ++_iter449) { - xfer += (*_iter443).write(oprot); + xfer += (*_iter449).write(oprot); } xfer += oprot->writeListEnd(); } @@ -2676,14 +2676,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size444; - ::apache::thrift::protocol::TType _etype447; - xfer += iprot->readListBegin(_etype447, _size444); - (*(this->success)).resize(_size444); - uint32_t _i448; - for (_i448 = 0; _i448 < _size444; ++_i448) + uint32_t _size450; + ::apache::thrift::protocol::TType _etype453; + xfer += iprot->readListBegin(_etype453, _size450); + (*(this->success)).resize(_size450); + uint32_t _i454; + for (_i454 = 0; _i454 < _size450; ++_i454) { - xfer += (*(this->success))[_i448].read(iprot); + xfer += (*(this->success))[_i454].read(iprot); } xfer += iprot->readListEnd(); } @@ -2834,14 +2834,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size449; - ::apache::thrift::protocol::TType _etype452; - xfer += iprot->readListBegin(_etype452, _size449); - this->success.resize(_size449); - uint32_t _i453; - for (_i453 = 0; _i453 < _size449; ++_i453) + uint32_t _size455; + ::apache::thrift::protocol::TType _etype458; + xfer += iprot->readListBegin(_etype458, _size455); + this->success.resize(_size455); + uint32_t _i459; + for (_i459 = 0; _i459 < _size455; ++_i459) { - xfer += this->success[_i453].read(iprot); + xfer += this->success[_i459].read(iprot); } xfer += iprot->readListEnd(); } @@ -2896,10 +2896,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 _iter454; - for (_iter454 = this->success.begin(); _iter454 != this->success.end(); ++_iter454) + std::vector ::const_iterator _iter460; + for (_iter460 = this->success.begin(); _iter460 != this->success.end(); ++_iter460) { - xfer += (*_iter454).write(oprot); + xfer += (*_iter460).write(oprot); } xfer += oprot->writeListEnd(); } @@ -2946,14 +2946,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size455; - ::apache::thrift::protocol::TType _etype458; - xfer += iprot->readListBegin(_etype458, _size455); - (*(this->success)).resize(_size455); - uint32_t _i459; - for (_i459 = 0; _i459 < _size455; ++_i459) + uint32_t _size461; + ::apache::thrift::protocol::TType _etype464; + xfer += iprot->readListBegin(_etype464, _size461); + (*(this->success)).resize(_size461); + uint32_t _i465; + for (_i465 = 0; _i465 < _size461; ++_i465) { - xfer += (*(this->success))[_i459].read(iprot); + xfer += (*(this->success))[_i465].read(iprot); } xfer += iprot->readListEnd(); } @@ -4008,14 +4008,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size460; - ::apache::thrift::protocol::TType _etype463; - xfer += iprot->readListBegin(_etype463, _size460); - this->success.resize(_size460); - uint32_t _i464; - for (_i464 = 0; _i464 < _size460; ++_i464) + uint32_t _size466; + ::apache::thrift::protocol::TType _etype469; + xfer += iprot->readListBegin(_etype469, _size466); + this->success.resize(_size466); + uint32_t _i470; + for (_i470 = 0; _i470 < _size466; ++_i470) { - xfer += iprot->readString(this->success[_i464]); + xfer += iprot->readString(this->success[_i470]); } xfer += iprot->readListEnd(); } @@ -4054,10 +4054,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 _iter465; - for (_iter465 = this->success.begin(); _iter465 != this->success.end(); ++_iter465) + std::vector ::const_iterator _iter471; + for (_iter471 = this->success.begin(); _iter471 != this->success.end(); ++_iter471) { - xfer += oprot->writeString((*_iter465)); + xfer += oprot->writeString((*_iter471)); } xfer += oprot->writeListEnd(); } @@ -4096,14 +4096,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size466; - ::apache::thrift::protocol::TType _etype469; - xfer += iprot->readListBegin(_etype469, _size466); - (*(this->success)).resize(_size466); - uint32_t _i470; - for (_i470 = 0; _i470 < _size466; ++_i470) + uint32_t _size472; + ::apache::thrift::protocol::TType _etype475; + xfer += iprot->readListBegin(_etype475, _size472); + (*(this->success)).resize(_size472); + uint32_t _i476; + for (_i476 = 0; _i476 < _size472; ++_i476) { - xfer += iprot->readString((*(this->success))[_i470]); + xfer += iprot->readString((*(this->success))[_i476]); } xfer += iprot->readListEnd(); } @@ -4222,14 +4222,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size471; - ::apache::thrift::protocol::TType _etype474; - xfer += iprot->readListBegin(_etype474, _size471); - this->success.resize(_size471); - uint32_t _i475; - for (_i475 = 0; _i475 < _size471; ++_i475) + uint32_t _size477; + ::apache::thrift::protocol::TType _etype480; + xfer += iprot->readListBegin(_etype480, _size477); + this->success.resize(_size477); + uint32_t _i481; + for (_i481 = 0; _i481 < _size477; ++_i481) { - xfer += iprot->readString(this->success[_i475]); + xfer += iprot->readString(this->success[_i481]); } xfer += iprot->readListEnd(); } @@ -4268,10 +4268,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 _iter476; - for (_iter476 = this->success.begin(); _iter476 != this->success.end(); ++_iter476) + std::vector ::const_iterator _iter482; + for (_iter482 = this->success.begin(); _iter482 != this->success.end(); ++_iter482) { - xfer += oprot->writeString((*_iter476)); + xfer += oprot->writeString((*_iter482)); } xfer += oprot->writeListEnd(); } @@ -4310,14 +4310,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size477; - ::apache::thrift::protocol::TType _etype480; - xfer += iprot->readListBegin(_etype480, _size477); - (*(this->success)).resize(_size477); - uint32_t _i481; - for (_i481 = 0; _i481 < _size477; ++_i481) + uint32_t _size483; + ::apache::thrift::protocol::TType _etype486; + xfer += iprot->readListBegin(_etype486, _size483); + (*(this->success)).resize(_size483); + uint32_t _i487; + for (_i487 = 0; _i487 < _size483; ++_i487) { - xfer += iprot->readString((*(this->success))[_i481]); + xfer += iprot->readString((*(this->success))[_i487]); } xfer += iprot->readListEnd(); } @@ -4596,14 +4596,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->tbl_names.clear(); - uint32_t _size482; - ::apache::thrift::protocol::TType _etype485; - xfer += iprot->readListBegin(_etype485, _size482); - this->tbl_names.resize(_size482); - uint32_t _i486; - for (_i486 = 0; _i486 < _size482; ++_i486) + uint32_t _size488; + ::apache::thrift::protocol::TType _etype491; + xfer += iprot->readListBegin(_etype491, _size488); + this->tbl_names.resize(_size488); + uint32_t _i492; + for (_i492 = 0; _i492 < _size488; ++_i492) { - xfer += iprot->readString(this->tbl_names[_i486]); + xfer += iprot->readString(this->tbl_names[_i492]); } xfer += iprot->readListEnd(); } @@ -4635,10 +4635,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 _iter487; - for (_iter487 = this->tbl_names.begin(); _iter487 != this->tbl_names.end(); ++_iter487) + std::vector ::const_iterator _iter493; + for (_iter493 = this->tbl_names.begin(); _iter493 != this->tbl_names.end(); ++_iter493) { - xfer += oprot->writeString((*_iter487)); + xfer += oprot->writeString((*_iter493)); } xfer += oprot->writeListEnd(); } @@ -4660,10 +4660,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 _iter488; - for (_iter488 = (*(this->tbl_names)).begin(); _iter488 != (*(this->tbl_names)).end(); ++_iter488) + std::vector ::const_iterator _iter494; + for (_iter494 = (*(this->tbl_names)).begin(); _iter494 != (*(this->tbl_names)).end(); ++_iter494) { - xfer += oprot->writeString((*_iter488)); + xfer += oprot->writeString((*_iter494)); } xfer += oprot->writeListEnd(); } @@ -4698,14 +4698,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size489; - ::apache::thrift::protocol::TType _etype492; - xfer += iprot->readListBegin(_etype492, _size489); - this->success.resize(_size489); - uint32_t _i493; - for (_i493 = 0; _i493 < _size489; ++_i493) + uint32_t _size495; + ::apache::thrift::protocol::TType _etype498; + xfer += iprot->readListBegin(_etype498, _size495); + this->success.resize(_size495); + uint32_t _i499; + for (_i499 = 0; _i499 < _size495; ++_i499) { - xfer += this->success[_i493].read(iprot); + xfer += this->success[_i499].read(iprot); } xfer += iprot->readListEnd(); } @@ -4760,10 +4760,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 _iter494; - for (_iter494 = this->success.begin(); _iter494 != this->success.end(); ++_iter494) + std::vector
::const_iterator _iter500; + for (_iter500 = this->success.begin(); _iter500 != this->success.end(); ++_iter500) { - xfer += (*_iter494).write(oprot); + xfer += (*_iter500).write(oprot); } xfer += oprot->writeListEnd(); } @@ -4810,14 +4810,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size495; - ::apache::thrift::protocol::TType _etype498; - xfer += iprot->readListBegin(_etype498, _size495); - (*(this->success)).resize(_size495); - uint32_t _i499; - for (_i499 = 0; _i499 < _size495; ++_i499) + uint32_t _size501; + ::apache::thrift::protocol::TType _etype504; + xfer += iprot->readListBegin(_etype504, _size501); + (*(this->success)).resize(_size501); + uint32_t _i505; + for (_i505 = 0; _i505 < _size501; ++_i505) { - xfer += (*(this->success))[_i499].read(iprot); + xfer += (*(this->success))[_i505].read(iprot); } xfer += iprot->readListEnd(); } @@ -4984,14 +4984,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size500; - ::apache::thrift::protocol::TType _etype503; - xfer += iprot->readListBegin(_etype503, _size500); - this->success.resize(_size500); - uint32_t _i504; - for (_i504 = 0; _i504 < _size500; ++_i504) + uint32_t _size506; + ::apache::thrift::protocol::TType _etype509; + xfer += iprot->readListBegin(_etype509, _size506); + this->success.resize(_size506); + uint32_t _i510; + for (_i510 = 0; _i510 < _size506; ++_i510) { - xfer += iprot->readString(this->success[_i504]); + xfer += iprot->readString(this->success[_i510]); } xfer += iprot->readListEnd(); } @@ -5046,10 +5046,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 _iter505; - for (_iter505 = this->success.begin(); _iter505 != this->success.end(); ++_iter505) + std::vector ::const_iterator _iter511; + for (_iter511 = this->success.begin(); _iter511 != this->success.end(); ++_iter511) { - xfer += oprot->writeString((*_iter505)); + xfer += oprot->writeString((*_iter511)); } xfer += oprot->writeListEnd(); } @@ -5096,14 +5096,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size506; - ::apache::thrift::protocol::TType _etype509; - xfer += iprot->readListBegin(_etype509, _size506); - (*(this->success)).resize(_size506); - uint32_t _i510; - for (_i510 = 0; _i510 < _size506; ++_i510) + uint32_t _size512; + ::apache::thrift::protocol::TType _etype515; + xfer += iprot->readListBegin(_etype515, _size512); + (*(this->success)).resize(_size512); + uint32_t _i516; + for (_i516 = 0; _i516 < _size512; ++_i516) { - xfer += iprot->readString((*(this->success))[_i510]); + xfer += iprot->readString((*(this->success))[_i516]); } xfer += iprot->readListEnd(); } @@ -6306,14 +6306,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->new_parts.clear(); - uint32_t _size511; - ::apache::thrift::protocol::TType _etype514; - xfer += iprot->readListBegin(_etype514, _size511); - this->new_parts.resize(_size511); - uint32_t _i515; - for (_i515 = 0; _i515 < _size511; ++_i515) + uint32_t _size517; + ::apache::thrift::protocol::TType _etype520; + xfer += iprot->readListBegin(_etype520, _size517); + this->new_parts.resize(_size517); + uint32_t _i521; + for (_i521 = 0; _i521 < _size517; ++_i521) { - xfer += this->new_parts[_i515].read(iprot); + xfer += this->new_parts[_i521].read(iprot); } xfer += iprot->readListEnd(); } @@ -6341,10 +6341,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 _iter516; - for (_iter516 = this->new_parts.begin(); _iter516 != this->new_parts.end(); ++_iter516) + std::vector ::const_iterator _iter522; + for (_iter522 = this->new_parts.begin(); _iter522 != this->new_parts.end(); ++_iter522) { - xfer += (*_iter516).write(oprot); + xfer += (*_iter522).write(oprot); } xfer += oprot->writeListEnd(); } @@ -6362,10 +6362,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 _iter517; - for (_iter517 = (*(this->new_parts)).begin(); _iter517 != (*(this->new_parts)).end(); ++_iter517) + std::vector ::const_iterator _iter523; + for (_iter523 = (*(this->new_parts)).begin(); _iter523 != (*(this->new_parts)).end(); ++_iter523) { - xfer += (*_iter517).write(oprot); + xfer += (*_iter523).write(oprot); } xfer += oprot->writeListEnd(); } @@ -6556,14 +6556,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->new_parts.clear(); - uint32_t _size518; - ::apache::thrift::protocol::TType _etype521; - xfer += iprot->readListBegin(_etype521, _size518); - this->new_parts.resize(_size518); - uint32_t _i522; - for (_i522 = 0; _i522 < _size518; ++_i522) + uint32_t _size524; + ::apache::thrift::protocol::TType _etype527; + xfer += iprot->readListBegin(_etype527, _size524); + this->new_parts.resize(_size524); + uint32_t _i528; + for (_i528 = 0; _i528 < _size524; ++_i528) { - xfer += this->new_parts[_i522].read(iprot); + xfer += this->new_parts[_i528].read(iprot); } xfer += iprot->readListEnd(); } @@ -6591,10 +6591,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 _iter523; - for (_iter523 = this->new_parts.begin(); _iter523 != this->new_parts.end(); ++_iter523) + std::vector ::const_iterator _iter529; + for (_iter529 = this->new_parts.begin(); _iter529 != this->new_parts.end(); ++_iter529) { - xfer += (*_iter523).write(oprot); + xfer += (*_iter529).write(oprot); } xfer += oprot->writeListEnd(); } @@ -6612,10 +6612,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 _iter524; - for (_iter524 = (*(this->new_parts)).begin(); _iter524 != (*(this->new_parts)).end(); ++_iter524) + std::vector ::const_iterator _iter530; + for (_iter530 = (*(this->new_parts)).begin(); _iter530 != (*(this->new_parts)).end(); ++_iter530) { - xfer += (*_iter524).write(oprot); + xfer += (*_iter530).write(oprot); } xfer += oprot->writeListEnd(); } @@ -6822,14 +6822,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size525; - ::apache::thrift::protocol::TType _etype528; - xfer += iprot->readListBegin(_etype528, _size525); - this->part_vals.resize(_size525); - uint32_t _i529; - for (_i529 = 0; _i529 < _size525; ++_i529) + uint32_t _size531; + ::apache::thrift::protocol::TType _etype534; + xfer += iprot->readListBegin(_etype534, _size531); + this->part_vals.resize(_size531); + uint32_t _i535; + for (_i535 = 0; _i535 < _size531; ++_i535) { - xfer += iprot->readString(this->part_vals[_i529]); + xfer += iprot->readString(this->part_vals[_i535]); } xfer += iprot->readListEnd(); } @@ -6865,10 +6865,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 _iter530; - for (_iter530 = this->part_vals.begin(); _iter530 != this->part_vals.end(); ++_iter530) + std::vector ::const_iterator _iter536; + for (_iter536 = this->part_vals.begin(); _iter536 != this->part_vals.end(); ++_iter536) { - xfer += oprot->writeString((*_iter530)); + xfer += oprot->writeString((*_iter536)); } xfer += oprot->writeListEnd(); } @@ -6894,10 +6894,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 _iter531; - for (_iter531 = (*(this->part_vals)).begin(); _iter531 != (*(this->part_vals)).end(); ++_iter531) + std::vector ::const_iterator _iter537; + for (_iter537 = (*(this->part_vals)).begin(); _iter537 != (*(this->part_vals)).end(); ++_iter537) { - xfer += oprot->writeString((*_iter531)); + xfer += oprot->writeString((*_iter537)); } xfer += oprot->writeListEnd(); } @@ -7326,14 +7326,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size532; - ::apache::thrift::protocol::TType _etype535; - xfer += iprot->readListBegin(_etype535, _size532); - this->part_vals.resize(_size532); - uint32_t _i536; - for (_i536 = 0; _i536 < _size532; ++_i536) + uint32_t _size538; + ::apache::thrift::protocol::TType _etype541; + xfer += iprot->readListBegin(_etype541, _size538); + this->part_vals.resize(_size538); + uint32_t _i542; + for (_i542 = 0; _i542 < _size538; ++_i542) { - xfer += iprot->readString(this->part_vals[_i536]); + xfer += iprot->readString(this->part_vals[_i542]); } xfer += iprot->readListEnd(); } @@ -7377,10 +7377,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 _iter537; - for (_iter537 = this->part_vals.begin(); _iter537 != this->part_vals.end(); ++_iter537) + std::vector ::const_iterator _iter543; + for (_iter543 = this->part_vals.begin(); _iter543 != this->part_vals.end(); ++_iter543) { - xfer += oprot->writeString((*_iter537)); + xfer += oprot->writeString((*_iter543)); } xfer += oprot->writeListEnd(); } @@ -7410,10 +7410,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 _iter538; - for (_iter538 = (*(this->part_vals)).begin(); _iter538 != (*(this->part_vals)).end(); ++_iter538) + std::vector ::const_iterator _iter544; + for (_iter544 = (*(this->part_vals)).begin(); _iter544 != (*(this->part_vals)).end(); ++_iter544) { - xfer += oprot->writeString((*_iter538)); + xfer += oprot->writeString((*_iter544)); } xfer += oprot->writeListEnd(); } @@ -8148,14 +8148,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size539; - ::apache::thrift::protocol::TType _etype542; - xfer += iprot->readListBegin(_etype542, _size539); - this->part_vals.resize(_size539); - uint32_t _i543; - for (_i543 = 0; _i543 < _size539; ++_i543) + uint32_t _size545; + ::apache::thrift::protocol::TType _etype548; + xfer += iprot->readListBegin(_etype548, _size545); + this->part_vals.resize(_size545); + uint32_t _i549; + for (_i549 = 0; _i549 < _size545; ++_i549) { - xfer += iprot->readString(this->part_vals[_i543]); + xfer += iprot->readString(this->part_vals[_i549]); } xfer += iprot->readListEnd(); } @@ -8199,10 +8199,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 _iter544; - for (_iter544 = this->part_vals.begin(); _iter544 != this->part_vals.end(); ++_iter544) + std::vector ::const_iterator _iter550; + for (_iter550 = this->part_vals.begin(); _iter550 != this->part_vals.end(); ++_iter550) { - xfer += oprot->writeString((*_iter544)); + xfer += oprot->writeString((*_iter550)); } xfer += oprot->writeListEnd(); } @@ -8232,10 +8232,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 _iter545; - for (_iter545 = (*(this->part_vals)).begin(); _iter545 != (*(this->part_vals)).end(); ++_iter545) + std::vector ::const_iterator _iter551; + for (_iter551 = (*(this->part_vals)).begin(); _iter551 != (*(this->part_vals)).end(); ++_iter551) { - xfer += oprot->writeString((*_iter545)); + xfer += oprot->writeString((*_iter551)); } xfer += oprot->writeListEnd(); } @@ -8426,14 +8426,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size546; - ::apache::thrift::protocol::TType _etype549; - xfer += iprot->readListBegin(_etype549, _size546); - this->part_vals.resize(_size546); - uint32_t _i550; - for (_i550 = 0; _i550 < _size546; ++_i550) + uint32_t _size552; + ::apache::thrift::protocol::TType _etype555; + xfer += iprot->readListBegin(_etype555, _size552); + this->part_vals.resize(_size552); + uint32_t _i556; + for (_i556 = 0; _i556 < _size552; ++_i556) { - xfer += iprot->readString(this->part_vals[_i550]); + xfer += iprot->readString(this->part_vals[_i556]); } xfer += iprot->readListEnd(); } @@ -8485,10 +8485,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 _iter551; - for (_iter551 = this->part_vals.begin(); _iter551 != this->part_vals.end(); ++_iter551) + std::vector ::const_iterator _iter557; + for (_iter557 = this->part_vals.begin(); _iter557 != this->part_vals.end(); ++_iter557) { - xfer += oprot->writeString((*_iter551)); + xfer += oprot->writeString((*_iter557)); } xfer += oprot->writeListEnd(); } @@ -8522,10 +8522,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 _iter552; - for (_iter552 = (*(this->part_vals)).begin(); _iter552 != (*(this->part_vals)).end(); ++_iter552) + std::vector ::const_iterator _iter558; + for (_iter558 = (*(this->part_vals)).begin(); _iter558 != (*(this->part_vals)).end(); ++_iter558) { - xfer += oprot->writeString((*_iter552)); + xfer += oprot->writeString((*_iter558)); } xfer += oprot->writeListEnd(); } @@ -9438,14 +9438,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size553; - ::apache::thrift::protocol::TType _etype556; - xfer += iprot->readListBegin(_etype556, _size553); - this->part_vals.resize(_size553); - uint32_t _i557; - for (_i557 = 0; _i557 < _size553; ++_i557) + uint32_t _size559; + ::apache::thrift::protocol::TType _etype562; + xfer += iprot->readListBegin(_etype562, _size559); + this->part_vals.resize(_size559); + uint32_t _i563; + for (_i563 = 0; _i563 < _size559; ++_i563) { - xfer += iprot->readString(this->part_vals[_i557]); + xfer += iprot->readString(this->part_vals[_i563]); } xfer += iprot->readListEnd(); } @@ -9481,10 +9481,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 _iter558; - for (_iter558 = this->part_vals.begin(); _iter558 != this->part_vals.end(); ++_iter558) + std::vector ::const_iterator _iter564; + for (_iter564 = this->part_vals.begin(); _iter564 != this->part_vals.end(); ++_iter564) { - xfer += oprot->writeString((*_iter558)); + xfer += oprot->writeString((*_iter564)); } xfer += oprot->writeListEnd(); } @@ -9510,10 +9510,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 _iter559; - for (_iter559 = (*(this->part_vals)).begin(); _iter559 != (*(this->part_vals)).end(); ++_iter559) + std::vector ::const_iterator _iter565; + for (_iter565 = (*(this->part_vals)).begin(); _iter565 != (*(this->part_vals)).end(); ++_iter565) { - xfer += oprot->writeString((*_iter559)); + xfer += oprot->writeString((*_iter565)); } xfer += oprot->writeListEnd(); } @@ -9684,17 +9684,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { this->partitionSpecs.clear(); - uint32_t _size560; - ::apache::thrift::protocol::TType _ktype561; - ::apache::thrift::protocol::TType _vtype562; - xfer += iprot->readMapBegin(_ktype561, _vtype562, _size560); - uint32_t _i564; - for (_i564 = 0; _i564 < _size560; ++_i564) + uint32_t _size566; + ::apache::thrift::protocol::TType _ktype567; + ::apache::thrift::protocol::TType _vtype568; + xfer += iprot->readMapBegin(_ktype567, _vtype568, _size566); + uint32_t _i570; + for (_i570 = 0; _i570 < _size566; ++_i570) { - std::string _key565; - xfer += iprot->readString(_key565); - std::string& _val566 = this->partitionSpecs[_key565]; - xfer += iprot->readString(_val566); + std::string _key571; + xfer += iprot->readString(_key571); + std::string& _val572 = this->partitionSpecs[_key571]; + xfer += iprot->readString(_val572); } xfer += iprot->readMapEnd(); } @@ -9754,11 +9754,11 @@ xfer += oprot->writeFieldBegin("partitionSpecs", ::apache::thrift::protocol::T_MAP, 1); { xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast(this->partitionSpecs.size())); - std::map ::const_iterator _iter567; - for (_iter567 = this->partitionSpecs.begin(); _iter567 != this->partitionSpecs.end(); ++_iter567) + std::map ::const_iterator _iter573; + for (_iter573 = this->partitionSpecs.begin(); _iter573 != this->partitionSpecs.end(); ++_iter573) { - xfer += oprot->writeString(_iter567->first); - xfer += oprot->writeString(_iter567->second); + xfer += oprot->writeString(_iter573->first); + xfer += oprot->writeString(_iter573->second); } xfer += oprot->writeMapEnd(); } @@ -9792,11 +9792,11 @@ xfer += oprot->writeFieldBegin("partitionSpecs", ::apache::thrift::protocol::T_MAP, 1); { xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast((*(this->partitionSpecs)).size())); - std::map ::const_iterator _iter568; - for (_iter568 = (*(this->partitionSpecs)).begin(); _iter568 != (*(this->partitionSpecs)).end(); ++_iter568) + std::map ::const_iterator _iter574; + for (_iter574 = (*(this->partitionSpecs)).begin(); _iter574 != (*(this->partitionSpecs)).end(); ++_iter574) { - xfer += oprot->writeString(_iter568->first); - xfer += oprot->writeString(_iter568->second); + xfer += oprot->writeString(_iter574->first); + xfer += oprot->writeString(_iter574->second); } xfer += oprot->writeMapEnd(); } @@ -10039,14 +10039,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size569; - ::apache::thrift::protocol::TType _etype572; - xfer += iprot->readListBegin(_etype572, _size569); - this->part_vals.resize(_size569); - uint32_t _i573; - for (_i573 = 0; _i573 < _size569; ++_i573) + uint32_t _size575; + ::apache::thrift::protocol::TType _etype578; + xfer += iprot->readListBegin(_etype578, _size575); + this->part_vals.resize(_size575); + uint32_t _i579; + for (_i579 = 0; _i579 < _size575; ++_i579) { - xfer += iprot->readString(this->part_vals[_i573]); + xfer += iprot->readString(this->part_vals[_i579]); } xfer += iprot->readListEnd(); } @@ -10067,14 +10067,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->group_names.clear(); - uint32_t _size574; - ::apache::thrift::protocol::TType _etype577; - xfer += iprot->readListBegin(_etype577, _size574); - this->group_names.resize(_size574); - uint32_t _i578; - for (_i578 = 0; _i578 < _size574; ++_i578) + uint32_t _size580; + ::apache::thrift::protocol::TType _etype583; + xfer += iprot->readListBegin(_etype583, _size580); + this->group_names.resize(_size580); + uint32_t _i584; + for (_i584 = 0; _i584 < _size580; ++_i584) { - xfer += iprot->readString(this->group_names[_i578]); + xfer += iprot->readString(this->group_names[_i584]); } xfer += iprot->readListEnd(); } @@ -10110,10 +10110,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 _iter579; - for (_iter579 = this->part_vals.begin(); _iter579 != this->part_vals.end(); ++_iter579) + std::vector ::const_iterator _iter585; + for (_iter585 = this->part_vals.begin(); _iter585 != this->part_vals.end(); ++_iter585) { - xfer += oprot->writeString((*_iter579)); + xfer += oprot->writeString((*_iter585)); } xfer += oprot->writeListEnd(); } @@ -10126,10 +10126,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 _iter580; - for (_iter580 = this->group_names.begin(); _iter580 != this->group_names.end(); ++_iter580) + std::vector ::const_iterator _iter586; + for (_iter586 = this->group_names.begin(); _iter586 != this->group_names.end(); ++_iter586) { - xfer += oprot->writeString((*_iter580)); + xfer += oprot->writeString((*_iter586)); } xfer += oprot->writeListEnd(); } @@ -10155,10 +10155,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 _iter581; - for (_iter581 = (*(this->part_vals)).begin(); _iter581 != (*(this->part_vals)).end(); ++_iter581) + std::vector ::const_iterator _iter587; + for (_iter587 = (*(this->part_vals)).begin(); _iter587 != (*(this->part_vals)).end(); ++_iter587) { - xfer += oprot->writeString((*_iter581)); + xfer += oprot->writeString((*_iter587)); } xfer += oprot->writeListEnd(); } @@ -10171,10 +10171,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 _iter582; - for (_iter582 = (*(this->group_names)).begin(); _iter582 != (*(this->group_names)).end(); ++_iter582) + std::vector ::const_iterator _iter588; + for (_iter588 = (*(this->group_names)).begin(); _iter588 != (*(this->group_names)).end(); ++_iter588) { - xfer += oprot->writeString((*_iter582)); + xfer += oprot->writeString((*_iter588)); } xfer += oprot->writeListEnd(); } @@ -10677,14 +10677,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size583; - ::apache::thrift::protocol::TType _etype586; - xfer += iprot->readListBegin(_etype586, _size583); - this->success.resize(_size583); - uint32_t _i587; - for (_i587 = 0; _i587 < _size583; ++_i587) + uint32_t _size589; + ::apache::thrift::protocol::TType _etype592; + xfer += iprot->readListBegin(_etype592, _size589); + this->success.resize(_size589); + uint32_t _i593; + for (_i593 = 0; _i593 < _size589; ++_i593) { - xfer += this->success[_i587].read(iprot); + xfer += this->success[_i593].read(iprot); } xfer += iprot->readListEnd(); } @@ -10731,10 +10731,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 _iter588; - for (_iter588 = this->success.begin(); _iter588 != this->success.end(); ++_iter588) + std::vector ::const_iterator _iter594; + for (_iter594 = this->success.begin(); _iter594 != this->success.end(); ++_iter594) { - xfer += (*_iter588).write(oprot); + xfer += (*_iter594).write(oprot); } xfer += oprot->writeListEnd(); } @@ -10777,14 +10777,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size589; - ::apache::thrift::protocol::TType _etype592; - xfer += iprot->readListBegin(_etype592, _size589); - (*(this->success)).resize(_size589); - uint32_t _i593; - for (_i593 = 0; _i593 < _size589; ++_i593) + uint32_t _size595; + ::apache::thrift::protocol::TType _etype598; + xfer += iprot->readListBegin(_etype598, _size595); + (*(this->success)).resize(_size595); + uint32_t _i599; + for (_i599 = 0; _i599 < _size595; ++_i599) { - xfer += (*(this->success))[_i593].read(iprot); + xfer += (*(this->success))[_i599].read(iprot); } xfer += iprot->readListEnd(); } @@ -10877,14 +10877,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->group_names.clear(); - uint32_t _size594; - ::apache::thrift::protocol::TType _etype597; - xfer += iprot->readListBegin(_etype597, _size594); - this->group_names.resize(_size594); - uint32_t _i598; - for (_i598 = 0; _i598 < _size594; ++_i598) + uint32_t _size600; + ::apache::thrift::protocol::TType _etype603; + xfer += iprot->readListBegin(_etype603, _size600); + this->group_names.resize(_size600); + uint32_t _i604; + for (_i604 = 0; _i604 < _size600; ++_i604) { - xfer += iprot->readString(this->group_names[_i598]); + xfer += iprot->readString(this->group_names[_i604]); } xfer += iprot->readListEnd(); } @@ -10928,10 +10928,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 _iter599; - for (_iter599 = this->group_names.begin(); _iter599 != this->group_names.end(); ++_iter599) + std::vector ::const_iterator _iter605; + for (_iter605 = this->group_names.begin(); _iter605 != this->group_names.end(); ++_iter605) { - xfer += oprot->writeString((*_iter599)); + xfer += oprot->writeString((*_iter605)); } xfer += oprot->writeListEnd(); } @@ -10965,10 +10965,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 _iter600; - for (_iter600 = (*(this->group_names)).begin(); _iter600 != (*(this->group_names)).end(); ++_iter600) + std::vector ::const_iterator _iter606; + for (_iter606 = (*(this->group_names)).begin(); _iter606 != (*(this->group_names)).end(); ++_iter606) { - xfer += oprot->writeString((*_iter600)); + xfer += oprot->writeString((*_iter606)); } xfer += oprot->writeListEnd(); } @@ -11003,14 +11003,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size601; - ::apache::thrift::protocol::TType _etype604; - xfer += iprot->readListBegin(_etype604, _size601); - this->success.resize(_size601); - uint32_t _i605; - for (_i605 = 0; _i605 < _size601; ++_i605) + uint32_t _size607; + ::apache::thrift::protocol::TType _etype610; + xfer += iprot->readListBegin(_etype610, _size607); + this->success.resize(_size607); + uint32_t _i611; + for (_i611 = 0; _i611 < _size607; ++_i611) { - xfer += this->success[_i605].read(iprot); + xfer += this->success[_i611].read(iprot); } xfer += iprot->readListEnd(); } @@ -11057,10 +11057,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 _iter606; - for (_iter606 = this->success.begin(); _iter606 != this->success.end(); ++_iter606) + std::vector ::const_iterator _iter612; + for (_iter612 = this->success.begin(); _iter612 != this->success.end(); ++_iter612) { - xfer += (*_iter606).write(oprot); + xfer += (*_iter612).write(oprot); } xfer += oprot->writeListEnd(); } @@ -11103,14 +11103,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size607; - ::apache::thrift::protocol::TType _etype610; - xfer += iprot->readListBegin(_etype610, _size607); - (*(this->success)).resize(_size607); - uint32_t _i611; - for (_i611 = 0; _i611 < _size607; ++_i611) + uint32_t _size613; + ::apache::thrift::protocol::TType _etype616; + xfer += iprot->readListBegin(_etype616, _size613); + (*(this->success)).resize(_size613); + uint32_t _i617; + for (_i617 = 0; _i617 < _size613; ++_i617) { - xfer += (*(this->success))[_i611].read(iprot); + xfer += (*(this->success))[_i617].read(iprot); } xfer += iprot->readListEnd(); } @@ -11269,14 +11269,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size612; - ::apache::thrift::protocol::TType _etype615; - xfer += iprot->readListBegin(_etype615, _size612); - this->success.resize(_size612); - uint32_t _i616; - for (_i616 = 0; _i616 < _size612; ++_i616) + uint32_t _size618; + ::apache::thrift::protocol::TType _etype621; + xfer += iprot->readListBegin(_etype621, _size618); + this->success.resize(_size618); + uint32_t _i622; + for (_i622 = 0; _i622 < _size618; ++_i622) { - xfer += this->success[_i616].read(iprot); + xfer += this->success[_i622].read(iprot); } xfer += iprot->readListEnd(); } @@ -11323,10 +11323,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 _iter617; - for (_iter617 = this->success.begin(); _iter617 != this->success.end(); ++_iter617) + std::vector ::const_iterator _iter623; + for (_iter623 = this->success.begin(); _iter623 != this->success.end(); ++_iter623) { - xfer += (*_iter617).write(oprot); + xfer += (*_iter623).write(oprot); } xfer += oprot->writeListEnd(); } @@ -11369,14 +11369,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size618; - ::apache::thrift::protocol::TType _etype621; - xfer += iprot->readListBegin(_etype621, _size618); - (*(this->success)).resize(_size618); - uint32_t _i622; - for (_i622 = 0; _i622 < _size618; ++_i622) + uint32_t _size624; + ::apache::thrift::protocol::TType _etype627; + xfer += iprot->readListBegin(_etype627, _size624); + (*(this->success)).resize(_size624); + uint32_t _i628; + for (_i628 = 0; _i628 < _size624; ++_i628) { - xfer += (*(this->success))[_i622].read(iprot); + xfer += (*(this->success))[_i628].read(iprot); } xfer += iprot->readListEnd(); } @@ -11535,14 +11535,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size623; - ::apache::thrift::protocol::TType _etype626; - xfer += iprot->readListBegin(_etype626, _size623); - this->success.resize(_size623); - uint32_t _i627; - for (_i627 = 0; _i627 < _size623; ++_i627) + uint32_t _size629; + ::apache::thrift::protocol::TType _etype632; + xfer += iprot->readListBegin(_etype632, _size629); + this->success.resize(_size629); + uint32_t _i633; + for (_i633 = 0; _i633 < _size629; ++_i633) { - xfer += iprot->readString(this->success[_i627]); + xfer += iprot->readString(this->success[_i633]); } xfer += iprot->readListEnd(); } @@ -11581,10 +11581,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 _iter628; - for (_iter628 = this->success.begin(); _iter628 != this->success.end(); ++_iter628) + std::vector ::const_iterator _iter634; + for (_iter634 = this->success.begin(); _iter634 != this->success.end(); ++_iter634) { - xfer += oprot->writeString((*_iter628)); + xfer += oprot->writeString((*_iter634)); } xfer += oprot->writeListEnd(); } @@ -11623,14 +11623,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size629; - ::apache::thrift::protocol::TType _etype632; - xfer += iprot->readListBegin(_etype632, _size629); - (*(this->success)).resize(_size629); - uint32_t _i633; - for (_i633 = 0; _i633 < _size629; ++_i633) + uint32_t _size635; + ::apache::thrift::protocol::TType _etype638; + xfer += iprot->readListBegin(_etype638, _size635); + (*(this->success)).resize(_size635); + uint32_t _i639; + for (_i639 = 0; _i639 < _size635; ++_i639) { - xfer += iprot->readString((*(this->success))[_i633]); + xfer += iprot->readString((*(this->success))[_i639]); } xfer += iprot->readListEnd(); } @@ -11699,14 +11699,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size634; - ::apache::thrift::protocol::TType _etype637; - xfer += iprot->readListBegin(_etype637, _size634); - this->part_vals.resize(_size634); - uint32_t _i638; - for (_i638 = 0; _i638 < _size634; ++_i638) + uint32_t _size640; + ::apache::thrift::protocol::TType _etype643; + xfer += iprot->readListBegin(_etype643, _size640); + this->part_vals.resize(_size640); + uint32_t _i644; + for (_i644 = 0; _i644 < _size640; ++_i644) { - xfer += iprot->readString(this->part_vals[_i638]); + xfer += iprot->readString(this->part_vals[_i644]); } xfer += iprot->readListEnd(); } @@ -11750,10 +11750,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 _iter639; - for (_iter639 = this->part_vals.begin(); _iter639 != this->part_vals.end(); ++_iter639) + std::vector ::const_iterator _iter645; + for (_iter645 = this->part_vals.begin(); _iter645 != this->part_vals.end(); ++_iter645) { - xfer += oprot->writeString((*_iter639)); + xfer += oprot->writeString((*_iter645)); } xfer += oprot->writeListEnd(); } @@ -11783,10 +11783,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 _iter640; - for (_iter640 = (*(this->part_vals)).begin(); _iter640 != (*(this->part_vals)).end(); ++_iter640) + std::vector ::const_iterator _iter646; + for (_iter646 = (*(this->part_vals)).begin(); _iter646 != (*(this->part_vals)).end(); ++_iter646) { - xfer += oprot->writeString((*_iter640)); + xfer += oprot->writeString((*_iter646)); } xfer += oprot->writeListEnd(); } @@ -11825,14 +11825,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size641; - ::apache::thrift::protocol::TType _etype644; - xfer += iprot->readListBegin(_etype644, _size641); - this->success.resize(_size641); - uint32_t _i645; - for (_i645 = 0; _i645 < _size641; ++_i645) + uint32_t _size647; + ::apache::thrift::protocol::TType _etype650; + xfer += iprot->readListBegin(_etype650, _size647); + this->success.resize(_size647); + uint32_t _i651; + for (_i651 = 0; _i651 < _size647; ++_i651) { - xfer += this->success[_i645].read(iprot); + xfer += this->success[_i651].read(iprot); } xfer += iprot->readListEnd(); } @@ -11879,10 +11879,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 _iter646; - for (_iter646 = this->success.begin(); _iter646 != this->success.end(); ++_iter646) + std::vector ::const_iterator _iter652; + for (_iter652 = this->success.begin(); _iter652 != this->success.end(); ++_iter652) { - xfer += (*_iter646).write(oprot); + xfer += (*_iter652).write(oprot); } xfer += oprot->writeListEnd(); } @@ -11925,14 +11925,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size647; - ::apache::thrift::protocol::TType _etype650; - xfer += iprot->readListBegin(_etype650, _size647); - (*(this->success)).resize(_size647); - uint32_t _i651; - for (_i651 = 0; _i651 < _size647; ++_i651) + uint32_t _size653; + ::apache::thrift::protocol::TType _etype656; + xfer += iprot->readListBegin(_etype656, _size653); + (*(this->success)).resize(_size653); + uint32_t _i657; + for (_i657 = 0; _i657 < _size653; ++_i657) { - xfer += (*(this->success))[_i651].read(iprot); + xfer += (*(this->success))[_i657].read(iprot); } xfer += iprot->readListEnd(); } @@ -12009,14 +12009,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size652; - ::apache::thrift::protocol::TType _etype655; - xfer += iprot->readListBegin(_etype655, _size652); - this->part_vals.resize(_size652); - uint32_t _i656; - for (_i656 = 0; _i656 < _size652; ++_i656) + uint32_t _size658; + ::apache::thrift::protocol::TType _etype661; + xfer += iprot->readListBegin(_etype661, _size658); + this->part_vals.resize(_size658); + uint32_t _i662; + for (_i662 = 0; _i662 < _size658; ++_i662) { - xfer += iprot->readString(this->part_vals[_i656]); + xfer += iprot->readString(this->part_vals[_i662]); } xfer += iprot->readListEnd(); } @@ -12045,14 +12045,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->group_names.clear(); - uint32_t _size657; - ::apache::thrift::protocol::TType _etype660; - xfer += iprot->readListBegin(_etype660, _size657); - this->group_names.resize(_size657); - uint32_t _i661; - for (_i661 = 0; _i661 < _size657; ++_i661) + uint32_t _size663; + ::apache::thrift::protocol::TType _etype666; + xfer += iprot->readListBegin(_etype666, _size663); + this->group_names.resize(_size663); + uint32_t _i667; + for (_i667 = 0; _i667 < _size663; ++_i667) { - xfer += iprot->readString(this->group_names[_i661]); + xfer += iprot->readString(this->group_names[_i667]); } xfer += iprot->readListEnd(); } @@ -12088,10 +12088,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 _iter662; - for (_iter662 = this->part_vals.begin(); _iter662 != this->part_vals.end(); ++_iter662) + std::vector ::const_iterator _iter668; + for (_iter668 = this->part_vals.begin(); _iter668 != this->part_vals.end(); ++_iter668) { - xfer += oprot->writeString((*_iter662)); + xfer += oprot->writeString((*_iter668)); } xfer += oprot->writeListEnd(); } @@ -12108,10 +12108,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 _iter663; - for (_iter663 = this->group_names.begin(); _iter663 != this->group_names.end(); ++_iter663) + std::vector ::const_iterator _iter669; + for (_iter669 = this->group_names.begin(); _iter669 != this->group_names.end(); ++_iter669) { - xfer += oprot->writeString((*_iter663)); + xfer += oprot->writeString((*_iter669)); } xfer += oprot->writeListEnd(); } @@ -12137,10 +12137,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 _iter664; - for (_iter664 = (*(this->part_vals)).begin(); _iter664 != (*(this->part_vals)).end(); ++_iter664) + std::vector ::const_iterator _iter670; + for (_iter670 = (*(this->part_vals)).begin(); _iter670 != (*(this->part_vals)).end(); ++_iter670) { - xfer += oprot->writeString((*_iter664)); + xfer += oprot->writeString((*_iter670)); } xfer += oprot->writeListEnd(); } @@ -12157,10 +12157,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 _iter665; - for (_iter665 = (*(this->group_names)).begin(); _iter665 != (*(this->group_names)).end(); ++_iter665) + std::vector ::const_iterator _iter671; + for (_iter671 = (*(this->group_names)).begin(); _iter671 != (*(this->group_names)).end(); ++_iter671) { - xfer += oprot->writeString((*_iter665)); + xfer += oprot->writeString((*_iter671)); } xfer += oprot->writeListEnd(); } @@ -12195,14 +12195,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size666; - ::apache::thrift::protocol::TType _etype669; - xfer += iprot->readListBegin(_etype669, _size666); - this->success.resize(_size666); - uint32_t _i670; - for (_i670 = 0; _i670 < _size666; ++_i670) + uint32_t _size672; + ::apache::thrift::protocol::TType _etype675; + xfer += iprot->readListBegin(_etype675, _size672); + this->success.resize(_size672); + uint32_t _i676; + for (_i676 = 0; _i676 < _size672; ++_i676) { - xfer += this->success[_i670].read(iprot); + xfer += this->success[_i676].read(iprot); } xfer += iprot->readListEnd(); } @@ -12249,10 +12249,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 _iter671; - for (_iter671 = this->success.begin(); _iter671 != this->success.end(); ++_iter671) + std::vector ::const_iterator _iter677; + for (_iter677 = this->success.begin(); _iter677 != this->success.end(); ++_iter677) { - xfer += (*_iter671).write(oprot); + xfer += (*_iter677).write(oprot); } xfer += oprot->writeListEnd(); } @@ -12295,14 +12295,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size672; - ::apache::thrift::protocol::TType _etype675; - xfer += iprot->readListBegin(_etype675, _size672); - (*(this->success)).resize(_size672); - uint32_t _i676; - for (_i676 = 0; _i676 < _size672; ++_i676) + uint32_t _size678; + ::apache::thrift::protocol::TType _etype681; + xfer += iprot->readListBegin(_etype681, _size678); + (*(this->success)).resize(_size678); + uint32_t _i682; + for (_i682 = 0; _i682 < _size678; ++_i682) { - xfer += (*(this->success))[_i676].read(iprot); + xfer += (*(this->success))[_i682].read(iprot); } xfer += iprot->readListEnd(); } @@ -12379,14 +12379,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size677; - ::apache::thrift::protocol::TType _etype680; - xfer += iprot->readListBegin(_etype680, _size677); - this->part_vals.resize(_size677); - uint32_t _i681; - for (_i681 = 0; _i681 < _size677; ++_i681) + uint32_t _size683; + ::apache::thrift::protocol::TType _etype686; + xfer += iprot->readListBegin(_etype686, _size683); + this->part_vals.resize(_size683); + uint32_t _i687; + for (_i687 = 0; _i687 < _size683; ++_i687) { - xfer += iprot->readString(this->part_vals[_i681]); + xfer += iprot->readString(this->part_vals[_i687]); } xfer += iprot->readListEnd(); } @@ -12430,10 +12430,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 _iter682; - for (_iter682 = this->part_vals.begin(); _iter682 != this->part_vals.end(); ++_iter682) + std::vector ::const_iterator _iter688; + for (_iter688 = this->part_vals.begin(); _iter688 != this->part_vals.end(); ++_iter688) { - xfer += oprot->writeString((*_iter682)); + xfer += oprot->writeString((*_iter688)); } xfer += oprot->writeListEnd(); } @@ -12463,10 +12463,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 _iter683; - for (_iter683 = (*(this->part_vals)).begin(); _iter683 != (*(this->part_vals)).end(); ++_iter683) + std::vector ::const_iterator _iter689; + for (_iter689 = (*(this->part_vals)).begin(); _iter689 != (*(this->part_vals)).end(); ++_iter689) { - xfer += oprot->writeString((*_iter683)); + xfer += oprot->writeString((*_iter689)); } xfer += oprot->writeListEnd(); } @@ -12505,14 +12505,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size684; - ::apache::thrift::protocol::TType _etype687; - xfer += iprot->readListBegin(_etype687, _size684); - this->success.resize(_size684); - uint32_t _i688; - for (_i688 = 0; _i688 < _size684; ++_i688) + uint32_t _size690; + ::apache::thrift::protocol::TType _etype693; + xfer += iprot->readListBegin(_etype693, _size690); + this->success.resize(_size690); + uint32_t _i694; + for (_i694 = 0; _i694 < _size690; ++_i694) { - xfer += iprot->readString(this->success[_i688]); + xfer += iprot->readString(this->success[_i694]); } xfer += iprot->readListEnd(); } @@ -12559,10 +12559,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 _iter689; - for (_iter689 = this->success.begin(); _iter689 != this->success.end(); ++_iter689) + std::vector ::const_iterator _iter695; + for (_iter695 = this->success.begin(); _iter695 != this->success.end(); ++_iter695) { - xfer += oprot->writeString((*_iter689)); + xfer += oprot->writeString((*_iter695)); } xfer += oprot->writeListEnd(); } @@ -12605,14 +12605,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size690; - ::apache::thrift::protocol::TType _etype693; - xfer += iprot->readListBegin(_etype693, _size690); - (*(this->success)).resize(_size690); - uint32_t _i694; - for (_i694 = 0; _i694 < _size690; ++_i694) + uint32_t _size696; + ::apache::thrift::protocol::TType _etype699; + xfer += iprot->readListBegin(_etype699, _size696); + (*(this->success)).resize(_size696); + uint32_t _i700; + for (_i700 = 0; _i700 < _size696; ++_i700) { - xfer += iprot->readString((*(this->success))[_i694]); + xfer += iprot->readString((*(this->success))[_i700]); } xfer += iprot->readListEnd(); } @@ -12787,14 +12787,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size695; - ::apache::thrift::protocol::TType _etype698; - xfer += iprot->readListBegin(_etype698, _size695); - this->success.resize(_size695); - uint32_t _i699; - for (_i699 = 0; _i699 < _size695; ++_i699) + uint32_t _size701; + ::apache::thrift::protocol::TType _etype704; + xfer += iprot->readListBegin(_etype704, _size701); + this->success.resize(_size701); + uint32_t _i705; + for (_i705 = 0; _i705 < _size701; ++_i705) { - xfer += this->success[_i699].read(iprot); + xfer += this->success[_i705].read(iprot); } xfer += iprot->readListEnd(); } @@ -12841,10 +12841,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 _iter700; - for (_iter700 = this->success.begin(); _iter700 != this->success.end(); ++_iter700) + std::vector ::const_iterator _iter706; + for (_iter706 = this->success.begin(); _iter706 != this->success.end(); ++_iter706) { - xfer += (*_iter700).write(oprot); + xfer += (*_iter706).write(oprot); } xfer += oprot->writeListEnd(); } @@ -12887,14 +12887,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size701; - ::apache::thrift::protocol::TType _etype704; - xfer += iprot->readListBegin(_etype704, _size701); - (*(this->success)).resize(_size701); - uint32_t _i705; - for (_i705 = 0; _i705 < _size701; ++_i705) + uint32_t _size707; + ::apache::thrift::protocol::TType _etype710; + xfer += iprot->readListBegin(_etype710, _size707); + (*(this->success)).resize(_size707); + uint32_t _i711; + for (_i711 = 0; _i711 < _size707; ++_i711) { - xfer += (*(this->success))[_i705].read(iprot); + xfer += (*(this->success))[_i711].read(iprot); } xfer += iprot->readListEnd(); } @@ -13069,14 +13069,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size706; - ::apache::thrift::protocol::TType _etype709; - xfer += iprot->readListBegin(_etype709, _size706); - this->success.resize(_size706); - uint32_t _i710; - for (_i710 = 0; _i710 < _size706; ++_i710) + uint32_t _size712; + ::apache::thrift::protocol::TType _etype715; + xfer += iprot->readListBegin(_etype715, _size712); + this->success.resize(_size712); + uint32_t _i716; + for (_i716 = 0; _i716 < _size712; ++_i716) { - xfer += this->success[_i710].read(iprot); + xfer += this->success[_i716].read(iprot); } xfer += iprot->readListEnd(); } @@ -13123,10 +13123,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 _iter711; - for (_iter711 = this->success.begin(); _iter711 != this->success.end(); ++_iter711) + std::vector ::const_iterator _iter717; + for (_iter717 = this->success.begin(); _iter717 != this->success.end(); ++_iter717) { - xfer += (*_iter711).write(oprot); + xfer += (*_iter717).write(oprot); } xfer += oprot->writeListEnd(); } @@ -13169,14 +13169,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size712; - ::apache::thrift::protocol::TType _etype715; - xfer += iprot->readListBegin(_etype715, _size712); - (*(this->success)).resize(_size712); - uint32_t _i716; - for (_i716 = 0; _i716 < _size712; ++_i716) + uint32_t _size718; + ::apache::thrift::protocol::TType _etype721; + xfer += iprot->readListBegin(_etype721, _size718); + (*(this->success)).resize(_size718); + uint32_t _i722; + for (_i722 = 0; _i722 < _size718; ++_i722) { - xfer += (*(this->success))[_i716].read(iprot); + xfer += (*(this->success))[_i722].read(iprot); } xfer += iprot->readListEnd(); } @@ -13455,14 +13455,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->names.clear(); - uint32_t _size717; - ::apache::thrift::protocol::TType _etype720; - xfer += iprot->readListBegin(_etype720, _size717); - this->names.resize(_size717); - uint32_t _i721; - for (_i721 = 0; _i721 < _size717; ++_i721) + uint32_t _size723; + ::apache::thrift::protocol::TType _etype726; + xfer += iprot->readListBegin(_etype726, _size723); + this->names.resize(_size723); + uint32_t _i727; + for (_i727 = 0; _i727 < _size723; ++_i727) { - xfer += iprot->readString(this->names[_i721]); + xfer += iprot->readString(this->names[_i727]); } xfer += iprot->readListEnd(); } @@ -13498,10 +13498,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 _iter722; - for (_iter722 = this->names.begin(); _iter722 != this->names.end(); ++_iter722) + std::vector ::const_iterator _iter728; + for (_iter728 = this->names.begin(); _iter728 != this->names.end(); ++_iter728) { - xfer += oprot->writeString((*_iter722)); + xfer += oprot->writeString((*_iter728)); } xfer += oprot->writeListEnd(); } @@ -13527,10 +13527,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 _iter723; - for (_iter723 = (*(this->names)).begin(); _iter723 != (*(this->names)).end(); ++_iter723) + std::vector ::const_iterator _iter729; + for (_iter729 = (*(this->names)).begin(); _iter729 != (*(this->names)).end(); ++_iter729) { - xfer += oprot->writeString((*_iter723)); + xfer += oprot->writeString((*_iter729)); } xfer += oprot->writeListEnd(); } @@ -13565,14 +13565,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size724; - ::apache::thrift::protocol::TType _etype727; - xfer += iprot->readListBegin(_etype727, _size724); - this->success.resize(_size724); - uint32_t _i728; - for (_i728 = 0; _i728 < _size724; ++_i728) + uint32_t _size730; + ::apache::thrift::protocol::TType _etype733; + xfer += iprot->readListBegin(_etype733, _size730); + this->success.resize(_size730); + uint32_t _i734; + for (_i734 = 0; _i734 < _size730; ++_i734) { - xfer += this->success[_i728].read(iprot); + xfer += this->success[_i734].read(iprot); } xfer += iprot->readListEnd(); } @@ -13619,10 +13619,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 _iter729; - for (_iter729 = this->success.begin(); _iter729 != this->success.end(); ++_iter729) + std::vector ::const_iterator _iter735; + for (_iter735 = this->success.begin(); _iter735 != this->success.end(); ++_iter735) { - xfer += (*_iter729).write(oprot); + xfer += (*_iter735).write(oprot); } xfer += oprot->writeListEnd(); } @@ -13665,14 +13665,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size730; - ::apache::thrift::protocol::TType _etype733; - xfer += iprot->readListBegin(_etype733, _size730); - (*(this->success)).resize(_size730); - uint32_t _i734; - for (_i734 = 0; _i734 < _size730; ++_i734) + uint32_t _size736; + ::apache::thrift::protocol::TType _etype739; + xfer += iprot->readListBegin(_etype739, _size736); + (*(this->success)).resize(_size736); + uint32_t _i740; + for (_i740 = 0; _i740 < _size736; ++_i740) { - xfer += (*(this->success))[_i734].read(iprot); + xfer += (*(this->success))[_i740].read(iprot); } xfer += iprot->readListEnd(); } @@ -13963,14 +13963,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->new_parts.clear(); - uint32_t _size735; - ::apache::thrift::protocol::TType _etype738; - xfer += iprot->readListBegin(_etype738, _size735); - this->new_parts.resize(_size735); - uint32_t _i739; - for (_i739 = 0; _i739 < _size735; ++_i739) + uint32_t _size741; + ::apache::thrift::protocol::TType _etype744; + xfer += iprot->readListBegin(_etype744, _size741); + this->new_parts.resize(_size741); + uint32_t _i745; + for (_i745 = 0; _i745 < _size741; ++_i745) { - xfer += this->new_parts[_i739].read(iprot); + xfer += this->new_parts[_i745].read(iprot); } xfer += iprot->readListEnd(); } @@ -14006,10 +14006,10 @@ xfer += oprot->writeFieldBegin("new_parts", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->new_parts.size())); - std::vector ::const_iterator _iter740; - for (_iter740 = this->new_parts.begin(); _iter740 != this->new_parts.end(); ++_iter740) + std::vector ::const_iterator _iter746; + for (_iter746 = this->new_parts.begin(); _iter746 != this->new_parts.end(); ++_iter746) { - xfer += (*_iter740).write(oprot); + xfer += (*_iter746).write(oprot); } xfer += oprot->writeListEnd(); } @@ -14035,10 +14035,10 @@ xfer += oprot->writeFieldBegin("new_parts", ::apache::thrift::protocol::T_LIST, 3); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast((*(this->new_parts)).size())); - std::vector ::const_iterator _iter741; - for (_iter741 = (*(this->new_parts)).begin(); _iter741 != (*(this->new_parts)).end(); ++_iter741) + std::vector ::const_iterator _iter747; + for (_iter747 = (*(this->new_parts)).begin(); _iter747 != (*(this->new_parts)).end(); ++_iter747) { - xfer += (*_iter741).write(oprot); + xfer += (*_iter747).write(oprot); } xfer += oprot->writeListEnd(); } @@ -14435,14 +14435,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size742; - ::apache::thrift::protocol::TType _etype745; - xfer += iprot->readListBegin(_etype745, _size742); - this->part_vals.resize(_size742); - uint32_t _i746; - for (_i746 = 0; _i746 < _size742; ++_i746) + uint32_t _size748; + ::apache::thrift::protocol::TType _etype751; + xfer += iprot->readListBegin(_etype751, _size748); + this->part_vals.resize(_size748); + uint32_t _i752; + for (_i752 = 0; _i752 < _size748; ++_i752) { - xfer += iprot->readString(this->part_vals[_i746]); + xfer += iprot->readString(this->part_vals[_i752]); } xfer += iprot->readListEnd(); } @@ -14486,10 +14486,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 _iter747; - for (_iter747 = this->part_vals.begin(); _iter747 != this->part_vals.end(); ++_iter747) + std::vector ::const_iterator _iter753; + for (_iter753 = this->part_vals.begin(); _iter753 != this->part_vals.end(); ++_iter753) { - xfer += oprot->writeString((*_iter747)); + xfer += oprot->writeString((*_iter753)); } xfer += oprot->writeListEnd(); } @@ -14519,10 +14519,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 _iter748; - for (_iter748 = (*(this->part_vals)).begin(); _iter748 != (*(this->part_vals)).end(); ++_iter748) + std::vector ::const_iterator _iter754; + for (_iter754 = (*(this->part_vals)).begin(); _iter754 != (*(this->part_vals)).end(); ++_iter754) { - xfer += oprot->writeString((*_iter748)); + xfer += oprot->writeString((*_iter754)); } xfer += oprot->writeListEnd(); } @@ -14677,14 +14677,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->part_vals.clear(); - uint32_t _size749; - ::apache::thrift::protocol::TType _etype752; - xfer += iprot->readListBegin(_etype752, _size749); - this->part_vals.resize(_size749); - uint32_t _i753; - for (_i753 = 0; _i753 < _size749; ++_i753) + uint32_t _size755; + ::apache::thrift::protocol::TType _etype758; + xfer += iprot->readListBegin(_etype758, _size755); + this->part_vals.resize(_size755); + uint32_t _i759; + for (_i759 = 0; _i759 < _size755; ++_i759) { - xfer += iprot->readString(this->part_vals[_i753]); + xfer += iprot->readString(this->part_vals[_i759]); } xfer += iprot->readListEnd(); } @@ -14720,10 +14720,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 1); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->part_vals.size())); - std::vector ::const_iterator _iter754; - for (_iter754 = this->part_vals.begin(); _iter754 != this->part_vals.end(); ++_iter754) + std::vector ::const_iterator _iter760; + for (_iter760 = this->part_vals.begin(); _iter760 != this->part_vals.end(); ++_iter760) { - xfer += oprot->writeString((*_iter754)); + xfer += oprot->writeString((*_iter760)); } xfer += oprot->writeListEnd(); } @@ -14745,10 +14745,10 @@ xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 1); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*(this->part_vals)).size())); - std::vector ::const_iterator _iter755; - for (_iter755 = (*(this->part_vals)).begin(); _iter755 != (*(this->part_vals)).end(); ++_iter755) + std::vector ::const_iterator _iter761; + for (_iter761 = (*(this->part_vals)).begin(); _iter761 != (*(this->part_vals)).end(); ++_iter761) { - xfer += oprot->writeString((*_iter755)); + xfer += oprot->writeString((*_iter761)); } xfer += oprot->writeListEnd(); } @@ -15167,14 +15167,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size756; - ::apache::thrift::protocol::TType _etype759; - xfer += iprot->readListBegin(_etype759, _size756); - this->success.resize(_size756); - uint32_t _i760; - for (_i760 = 0; _i760 < _size756; ++_i760) + uint32_t _size762; + ::apache::thrift::protocol::TType _etype765; + xfer += iprot->readListBegin(_etype765, _size762); + this->success.resize(_size762); + uint32_t _i766; + for (_i766 = 0; _i766 < _size762; ++_i766) { - xfer += iprot->readString(this->success[_i760]); + xfer += iprot->readString(this->success[_i766]); } xfer += iprot->readListEnd(); } @@ -15213,10 +15213,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 _iter761; - for (_iter761 = this->success.begin(); _iter761 != this->success.end(); ++_iter761) + std::vector ::const_iterator _iter767; + for (_iter767 = this->success.begin(); _iter767 != this->success.end(); ++_iter767) { - xfer += oprot->writeString((*_iter761)); + xfer += oprot->writeString((*_iter767)); } xfer += oprot->writeListEnd(); } @@ -15255,14 +15255,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size762; - ::apache::thrift::protocol::TType _etype765; - xfer += iprot->readListBegin(_etype765, _size762); - (*(this->success)).resize(_size762); - uint32_t _i766; - for (_i766 = 0; _i766 < _size762; ++_i766) + uint32_t _size768; + ::apache::thrift::protocol::TType _etype771; + xfer += iprot->readListBegin(_etype771, _size768); + (*(this->success)).resize(_size768); + uint32_t _i772; + for (_i772 = 0; _i772 < _size768; ++_i772) { - xfer += iprot->readString((*(this->success))[_i766]); + xfer += iprot->readString((*(this->success))[_i772]); } xfer += iprot->readListEnd(); } @@ -15381,17 +15381,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { this->success.clear(); - uint32_t _size767; - ::apache::thrift::protocol::TType _ktype768; - ::apache::thrift::protocol::TType _vtype769; - xfer += iprot->readMapBegin(_ktype768, _vtype769, _size767); - uint32_t _i771; - for (_i771 = 0; _i771 < _size767; ++_i771) + uint32_t _size773; + ::apache::thrift::protocol::TType _ktype774; + ::apache::thrift::protocol::TType _vtype775; + xfer += iprot->readMapBegin(_ktype774, _vtype775, _size773); + uint32_t _i777; + for (_i777 = 0; _i777 < _size773; ++_i777) { - std::string _key772; - xfer += iprot->readString(_key772); - std::string& _val773 = this->success[_key772]; - xfer += iprot->readString(_val773); + std::string _key778; + xfer += iprot->readString(_key778); + std::string& _val779 = this->success[_key778]; + xfer += iprot->readString(_val779); } xfer += iprot->readMapEnd(); } @@ -15430,11 +15430,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 _iter774; - for (_iter774 = this->success.begin(); _iter774 != this->success.end(); ++_iter774) + std::map ::const_iterator _iter780; + for (_iter780 = this->success.begin(); _iter780 != this->success.end(); ++_iter780) { - xfer += oprot->writeString(_iter774->first); - xfer += oprot->writeString(_iter774->second); + xfer += oprot->writeString(_iter780->first); + xfer += oprot->writeString(_iter780->second); } xfer += oprot->writeMapEnd(); } @@ -15473,17 +15473,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { (*(this->success)).clear(); - uint32_t _size775; - ::apache::thrift::protocol::TType _ktype776; - ::apache::thrift::protocol::TType _vtype777; - xfer += iprot->readMapBegin(_ktype776, _vtype777, _size775); - uint32_t _i779; - for (_i779 = 0; _i779 < _size775; ++_i779) + uint32_t _size781; + ::apache::thrift::protocol::TType _ktype782; + ::apache::thrift::protocol::TType _vtype783; + xfer += iprot->readMapBegin(_ktype782, _vtype783, _size781); + uint32_t _i785; + for (_i785 = 0; _i785 < _size781; ++_i785) { - std::string _key780; - xfer += iprot->readString(_key780); - std::string& _val781 = (*(this->success))[_key780]; - xfer += iprot->readString(_val781); + std::string _key786; + xfer += iprot->readString(_key786); + std::string& _val787 = (*(this->success))[_key786]; + xfer += iprot->readString(_val787); } xfer += iprot->readMapEnd(); } @@ -15552,17 +15552,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { this->part_vals.clear(); - uint32_t _size782; - ::apache::thrift::protocol::TType _ktype783; - ::apache::thrift::protocol::TType _vtype784; - xfer += iprot->readMapBegin(_ktype783, _vtype784, _size782); - uint32_t _i786; - for (_i786 = 0; _i786 < _size782; ++_i786) + uint32_t _size788; + ::apache::thrift::protocol::TType _ktype789; + ::apache::thrift::protocol::TType _vtype790; + xfer += iprot->readMapBegin(_ktype789, _vtype790, _size788); + uint32_t _i792; + for (_i792 = 0; _i792 < _size788; ++_i792) { - std::string _key787; - xfer += iprot->readString(_key787); - std::string& _val788 = this->part_vals[_key787]; - xfer += iprot->readString(_val788); + std::string _key793; + xfer += iprot->readString(_key793); + std::string& _val794 = this->part_vals[_key793]; + xfer += iprot->readString(_val794); } xfer += iprot->readMapEnd(); } @@ -15573,9 +15573,9 @@ break; case 4: if (ftype == ::apache::thrift::protocol::T_I32) { - int32_t ecast789; - xfer += iprot->readI32(ecast789); - this->eventType = (PartitionEventType::type)ecast789; + int32_t ecast795; + xfer += iprot->readI32(ecast795); + this->eventType = (PartitionEventType::type)ecast795; this->__isset.eventType = true; } else { xfer += iprot->skip(ftype); @@ -15608,11 +15608,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 _iter790; - for (_iter790 = this->part_vals.begin(); _iter790 != this->part_vals.end(); ++_iter790) + std::map ::const_iterator _iter796; + for (_iter796 = this->part_vals.begin(); _iter796 != this->part_vals.end(); ++_iter796) { - xfer += oprot->writeString(_iter790->first); - xfer += oprot->writeString(_iter790->second); + xfer += oprot->writeString(_iter796->first); + xfer += oprot->writeString(_iter796->second); } xfer += oprot->writeMapEnd(); } @@ -15642,11 +15642,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 _iter791; - for (_iter791 = (*(this->part_vals)).begin(); _iter791 != (*(this->part_vals)).end(); ++_iter791) + std::map ::const_iterator _iter797; + for (_iter797 = (*(this->part_vals)).begin(); _iter797 != (*(this->part_vals)).end(); ++_iter797) { - xfer += oprot->writeString(_iter791->first); - xfer += oprot->writeString(_iter791->second); + xfer += oprot->writeString(_iter797->first); + xfer += oprot->writeString(_iter797->second); } xfer += oprot->writeMapEnd(); } @@ -15897,17 +15897,17 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { this->part_vals.clear(); - uint32_t _size792; - ::apache::thrift::protocol::TType _ktype793; - ::apache::thrift::protocol::TType _vtype794; - xfer += iprot->readMapBegin(_ktype793, _vtype794, _size792); - uint32_t _i796; - for (_i796 = 0; _i796 < _size792; ++_i796) + uint32_t _size798; + ::apache::thrift::protocol::TType _ktype799; + ::apache::thrift::protocol::TType _vtype800; + xfer += iprot->readMapBegin(_ktype799, _vtype800, _size798); + uint32_t _i802; + for (_i802 = 0; _i802 < _size798; ++_i802) { - std::string _key797; - xfer += iprot->readString(_key797); - std::string& _val798 = this->part_vals[_key797]; - xfer += iprot->readString(_val798); + std::string _key803; + xfer += iprot->readString(_key803); + std::string& _val804 = this->part_vals[_key803]; + xfer += iprot->readString(_val804); } xfer += iprot->readMapEnd(); } @@ -15918,9 +15918,9 @@ break; case 4: if (ftype == ::apache::thrift::protocol::T_I32) { - int32_t ecast799; - xfer += iprot->readI32(ecast799); - this->eventType = (PartitionEventType::type)ecast799; + int32_t ecast805; + xfer += iprot->readI32(ecast805); + this->eventType = (PartitionEventType::type)ecast805; this->__isset.eventType = true; } else { xfer += iprot->skip(ftype); @@ -15953,11 +15953,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 _iter800; - for (_iter800 = this->part_vals.begin(); _iter800 != this->part_vals.end(); ++_iter800) + std::map ::const_iterator _iter806; + for (_iter806 = this->part_vals.begin(); _iter806 != this->part_vals.end(); ++_iter806) { - xfer += oprot->writeString(_iter800->first); - xfer += oprot->writeString(_iter800->second); + xfer += oprot->writeString(_iter806->first); + xfer += oprot->writeString(_iter806->second); } xfer += oprot->writeMapEnd(); } @@ -15987,11 +15987,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 _iter801; - for (_iter801 = (*(this->part_vals)).begin(); _iter801 != (*(this->part_vals)).end(); ++_iter801) + std::map ::const_iterator _iter807; + for (_iter807 = (*(this->part_vals)).begin(); _iter807 != (*(this->part_vals)).end(); ++_iter807) { - xfer += oprot->writeString(_iter801->first); - xfer += oprot->writeString(_iter801->second); + xfer += oprot->writeString(_iter807->first); + xfer += oprot->writeString(_iter807->second); } xfer += oprot->writeMapEnd(); } @@ -17296,14 +17296,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size802; - ::apache::thrift::protocol::TType _etype805; - xfer += iprot->readListBegin(_etype805, _size802); - this->success.resize(_size802); - uint32_t _i806; - for (_i806 = 0; _i806 < _size802; ++_i806) + uint32_t _size808; + ::apache::thrift::protocol::TType _etype811; + xfer += iprot->readListBegin(_etype811, _size808); + this->success.resize(_size808); + uint32_t _i812; + for (_i812 = 0; _i812 < _size808; ++_i812) { - xfer += this->success[_i806].read(iprot); + xfer += this->success[_i812].read(iprot); } xfer += iprot->readListEnd(); } @@ -17350,10 +17350,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 _iter807; - for (_iter807 = this->success.begin(); _iter807 != this->success.end(); ++_iter807) + std::vector ::const_iterator _iter813; + for (_iter813 = this->success.begin(); _iter813 != this->success.end(); ++_iter813) { - xfer += (*_iter807).write(oprot); + xfer += (*_iter813).write(oprot); } xfer += oprot->writeListEnd(); } @@ -17396,14 +17396,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size808; - ::apache::thrift::protocol::TType _etype811; - xfer += iprot->readListBegin(_etype811, _size808); - (*(this->success)).resize(_size808); - uint32_t _i812; - for (_i812 = 0; _i812 < _size808; ++_i812) + uint32_t _size814; + ::apache::thrift::protocol::TType _etype817; + xfer += iprot->readListBegin(_etype817, _size814); + (*(this->success)).resize(_size814); + uint32_t _i818; + for (_i818 = 0; _i818 < _size814; ++_i818) { - xfer += (*(this->success))[_i812].read(iprot); + xfer += (*(this->success))[_i818].read(iprot); } xfer += iprot->readListEnd(); } @@ -17562,14 +17562,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size813; - ::apache::thrift::protocol::TType _etype816; - xfer += iprot->readListBegin(_etype816, _size813); - this->success.resize(_size813); - uint32_t _i817; - for (_i817 = 0; _i817 < _size813; ++_i817) + uint32_t _size819; + ::apache::thrift::protocol::TType _etype822; + xfer += iprot->readListBegin(_etype822, _size819); + this->success.resize(_size819); + uint32_t _i823; + for (_i823 = 0; _i823 < _size819; ++_i823) { - xfer += iprot->readString(this->success[_i817]); + xfer += iprot->readString(this->success[_i823]); } xfer += iprot->readListEnd(); } @@ -17608,10 +17608,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 _iter818; - for (_iter818 = this->success.begin(); _iter818 != this->success.end(); ++_iter818) + std::vector ::const_iterator _iter824; + for (_iter824 = this->success.begin(); _iter824 != this->success.end(); ++_iter824) { - xfer += oprot->writeString((*_iter818)); + xfer += oprot->writeString((*_iter824)); } xfer += oprot->writeListEnd(); } @@ -17650,14 +17650,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size819; - ::apache::thrift::protocol::TType _etype822; - xfer += iprot->readListBegin(_etype822, _size819); - (*(this->success)).resize(_size819); - uint32_t _i823; - for (_i823 = 0; _i823 < _size819; ++_i823) + uint32_t _size825; + ::apache::thrift::protocol::TType _etype828; + xfer += iprot->readListBegin(_etype828, _size825); + (*(this->success)).resize(_size825); + uint32_t _i829; + for (_i829 = 0; _i829 < _size825; ++_i829) { - xfer += iprot->readString((*(this->success))[_i823]); + xfer += iprot->readString((*(this->success))[_i829]); } xfer += iprot->readListEnd(); } @@ -20886,14 +20886,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size824; - ::apache::thrift::protocol::TType _etype827; - xfer += iprot->readListBegin(_etype827, _size824); - this->success.resize(_size824); - uint32_t _i828; - for (_i828 = 0; _i828 < _size824; ++_i828) + uint32_t _size830; + ::apache::thrift::protocol::TType _etype833; + xfer += iprot->readListBegin(_etype833, _size830); + this->success.resize(_size830); + uint32_t _i834; + for (_i834 = 0; _i834 < _size830; ++_i834) { - xfer += iprot->readString(this->success[_i828]); + xfer += iprot->readString(this->success[_i834]); } xfer += iprot->readListEnd(); } @@ -20932,10 +20932,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 _iter829; - for (_iter829 = this->success.begin(); _iter829 != this->success.end(); ++_iter829) + std::vector ::const_iterator _iter835; + for (_iter835 = this->success.begin(); _iter835 != this->success.end(); ++_iter835) { - xfer += oprot->writeString((*_iter829)); + xfer += oprot->writeString((*_iter835)); } xfer += oprot->writeListEnd(); } @@ -20974,14 +20974,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size830; - ::apache::thrift::protocol::TType _etype833; - xfer += iprot->readListBegin(_etype833, _size830); - (*(this->success)).resize(_size830); - uint32_t _i834; - for (_i834 = 0; _i834 < _size830; ++_i834) + uint32_t _size836; + ::apache::thrift::protocol::TType _etype839; + xfer += iprot->readListBegin(_etype839, _size836); + (*(this->success)).resize(_size836); + uint32_t _i840; + for (_i840 = 0; _i840 < _size836; ++_i840) { - xfer += iprot->readString((*(this->success))[_i834]); + xfer += iprot->readString((*(this->success))[_i840]); } xfer += iprot->readListEnd(); } @@ -21661,14 +21661,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size835; - ::apache::thrift::protocol::TType _etype838; - xfer += iprot->readListBegin(_etype838, _size835); - this->success.resize(_size835); - uint32_t _i839; - for (_i839 = 0; _i839 < _size835; ++_i839) + uint32_t _size841; + ::apache::thrift::protocol::TType _etype844; + xfer += iprot->readListBegin(_etype844, _size841); + this->success.resize(_size841); + uint32_t _i845; + for (_i845 = 0; _i845 < _size841; ++_i845) { - xfer += iprot->readString(this->success[_i839]); + xfer += iprot->readString(this->success[_i845]); } xfer += iprot->readListEnd(); } @@ -21707,10 +21707,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 _iter840; - for (_iter840 = this->success.begin(); _iter840 != this->success.end(); ++_iter840) + std::vector ::const_iterator _iter846; + for (_iter846 = this->success.begin(); _iter846 != this->success.end(); ++_iter846) { - xfer += oprot->writeString((*_iter840)); + xfer += oprot->writeString((*_iter846)); } xfer += oprot->writeListEnd(); } @@ -21749,14 +21749,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size841; - ::apache::thrift::protocol::TType _etype844; - xfer += iprot->readListBegin(_etype844, _size841); - (*(this->success)).resize(_size841); - uint32_t _i845; - for (_i845 = 0; _i845 < _size841; ++_i845) + uint32_t _size847; + ::apache::thrift::protocol::TType _etype850; + xfer += iprot->readListBegin(_etype850, _size847); + (*(this->success)).resize(_size847); + uint32_t _i851; + for (_i851 = 0; _i851 < _size847; ++_i851) { - xfer += iprot->readString((*(this->success))[_i845]); + xfer += iprot->readString((*(this->success))[_i851]); } xfer += iprot->readListEnd(); } @@ -21823,9 +21823,9 @@ break; case 3: if (ftype == ::apache::thrift::protocol::T_I32) { - int32_t ecast846; - xfer += iprot->readI32(ecast846); - this->principal_type = (PrincipalType::type)ecast846; + int32_t ecast852; + xfer += iprot->readI32(ecast852); + this->principal_type = (PrincipalType::type)ecast852; this->__isset.principal_type = true; } else { xfer += iprot->skip(ftype); @@ -21841,9 +21841,9 @@ break; case 5: if (ftype == ::apache::thrift::protocol::T_I32) { - int32_t ecast847; - xfer += iprot->readI32(ecast847); - this->grantorType = (PrincipalType::type)ecast847; + int32_t ecast853; + xfer += iprot->readI32(ecast853); + this->grantorType = (PrincipalType::type)ecast853; this->__isset.grantorType = true; } else { xfer += iprot->skip(ftype); @@ -22089,9 +22089,9 @@ break; case 3: if (ftype == ::apache::thrift::protocol::T_I32) { - int32_t ecast848; - xfer += iprot->readI32(ecast848); - this->principal_type = (PrincipalType::type)ecast848; + int32_t ecast854; + xfer += iprot->readI32(ecast854); + this->principal_type = (PrincipalType::type)ecast854; this->__isset.principal_type = true; } else { xfer += iprot->skip(ftype); @@ -22297,9 +22297,9 @@ break; case 2: if (ftype == ::apache::thrift::protocol::T_I32) { - int32_t ecast849; - xfer += iprot->readI32(ecast849); - this->principal_type = (PrincipalType::type)ecast849; + int32_t ecast855; + xfer += iprot->readI32(ecast855); + this->principal_type = (PrincipalType::type)ecast855; this->__isset.principal_type = true; } else { xfer += iprot->skip(ftype); @@ -22375,14 +22375,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size850; - ::apache::thrift::protocol::TType _etype853; - xfer += iprot->readListBegin(_etype853, _size850); - this->success.resize(_size850); - uint32_t _i854; - for (_i854 = 0; _i854 < _size850; ++_i854) + uint32_t _size856; + ::apache::thrift::protocol::TType _etype859; + xfer += iprot->readListBegin(_etype859, _size856); + this->success.resize(_size856); + uint32_t _i860; + for (_i860 = 0; _i860 < _size856; ++_i860) { - xfer += this->success[_i854].read(iprot); + xfer += this->success[_i860].read(iprot); } xfer += iprot->readListEnd(); } @@ -22421,10 +22421,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 _iter855; - for (_iter855 = this->success.begin(); _iter855 != this->success.end(); ++_iter855) + std::vector ::const_iterator _iter861; + for (_iter861 = this->success.begin(); _iter861 != this->success.end(); ++_iter861) { - xfer += (*_iter855).write(oprot); + xfer += (*_iter861).write(oprot); } xfer += oprot->writeListEnd(); } @@ -22463,14 +22463,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size856; - ::apache::thrift::protocol::TType _etype859; - xfer += iprot->readListBegin(_etype859, _size856); - (*(this->success)).resize(_size856); - uint32_t _i860; - for (_i860 = 0; _i860 < _size856; ++_i860) + uint32_t _size862; + ::apache::thrift::protocol::TType _etype865; + xfer += iprot->readListBegin(_etype865, _size862); + (*(this->success)).resize(_size862); + uint32_t _i866; + for (_i866 = 0; _i866 < _size862; ++_i866) { - xfer += (*(this->success))[_i860].read(iprot); + xfer += (*(this->success))[_i866].read(iprot); } xfer += iprot->readListEnd(); } @@ -23085,14 +23085,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->group_names.clear(); - uint32_t _size861; - ::apache::thrift::protocol::TType _etype864; - xfer += iprot->readListBegin(_etype864, _size861); - this->group_names.resize(_size861); - uint32_t _i865; - for (_i865 = 0; _i865 < _size861; ++_i865) + uint32_t _size867; + ::apache::thrift::protocol::TType _etype870; + xfer += iprot->readListBegin(_etype870, _size867); + this->group_names.resize(_size867); + uint32_t _i871; + for (_i871 = 0; _i871 < _size867; ++_i871) { - xfer += iprot->readString(this->group_names[_i865]); + xfer += iprot->readString(this->group_names[_i871]); } xfer += iprot->readListEnd(); } @@ -23128,10 +23128,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 _iter866; - for (_iter866 = this->group_names.begin(); _iter866 != this->group_names.end(); ++_iter866) + std::vector ::const_iterator _iter872; + for (_iter872 = this->group_names.begin(); _iter872 != this->group_names.end(); ++_iter872) { - xfer += oprot->writeString((*_iter866)); + xfer += oprot->writeString((*_iter872)); } xfer += oprot->writeListEnd(); } @@ -23157,10 +23157,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 _iter867; - for (_iter867 = (*(this->group_names)).begin(); _iter867 != (*(this->group_names)).end(); ++_iter867) + std::vector ::const_iterator _iter873; + for (_iter873 = (*(this->group_names)).begin(); _iter873 != (*(this->group_names)).end(); ++_iter873) { - xfer += oprot->writeString((*_iter867)); + xfer += oprot->writeString((*_iter873)); } xfer += oprot->writeListEnd(); } @@ -23317,9 +23317,9 @@ break; case 2: if (ftype == ::apache::thrift::protocol::T_I32) { - int32_t ecast868; - xfer += iprot->readI32(ecast868); - this->principal_type = (PrincipalType::type)ecast868; + int32_t ecast874; + xfer += iprot->readI32(ecast874); + this->principal_type = (PrincipalType::type)ecast874; this->__isset.principal_type = true; } else { xfer += iprot->skip(ftype); @@ -23411,14 +23411,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size869; - ::apache::thrift::protocol::TType _etype872; - xfer += iprot->readListBegin(_etype872, _size869); - this->success.resize(_size869); - uint32_t _i873; - for (_i873 = 0; _i873 < _size869; ++_i873) + uint32_t _size875; + ::apache::thrift::protocol::TType _etype878; + xfer += iprot->readListBegin(_etype878, _size875); + this->success.resize(_size875); + uint32_t _i879; + for (_i879 = 0; _i879 < _size875; ++_i879) { - xfer += this->success[_i873].read(iprot); + xfer += this->success[_i879].read(iprot); } xfer += iprot->readListEnd(); } @@ -23457,10 +23457,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 _iter874; - for (_iter874 = this->success.begin(); _iter874 != this->success.end(); ++_iter874) + std::vector ::const_iterator _iter880; + for (_iter880 = this->success.begin(); _iter880 != this->success.end(); ++_iter880) { - xfer += (*_iter874).write(oprot); + xfer += (*_iter880).write(oprot); } xfer += oprot->writeListEnd(); } @@ -23499,14 +23499,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size875; - ::apache::thrift::protocol::TType _etype878; - xfer += iprot->readListBegin(_etype878, _size875); - (*(this->success)).resize(_size875); - uint32_t _i879; - for (_i879 = 0; _i879 < _size875; ++_i879) + uint32_t _size881; + ::apache::thrift::protocol::TType _etype884; + xfer += iprot->readListBegin(_etype884, _size881); + (*(this->success)).resize(_size881); + uint32_t _i885; + for (_i885 = 0; _i885 < _size881; ++_i885) { - xfer += (*(this->success))[_i879].read(iprot); + xfer += (*(this->success))[_i885].read(iprot); } xfer += iprot->readListEnd(); } @@ -24113,14 +24113,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->group_names.clear(); - uint32_t _size880; - ::apache::thrift::protocol::TType _etype883; - xfer += iprot->readListBegin(_etype883, _size880); - this->group_names.resize(_size880); - uint32_t _i884; - for (_i884 = 0; _i884 < _size880; ++_i884) + uint32_t _size886; + ::apache::thrift::protocol::TType _etype889; + xfer += iprot->readListBegin(_etype889, _size886); + this->group_names.resize(_size886); + uint32_t _i890; + for (_i890 = 0; _i890 < _size886; ++_i890) { - xfer += iprot->readString(this->group_names[_i884]); + xfer += iprot->readString(this->group_names[_i890]); } xfer += iprot->readListEnd(); } @@ -24152,10 +24152,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 _iter885; - for (_iter885 = this->group_names.begin(); _iter885 != this->group_names.end(); ++_iter885) + std::vector ::const_iterator _iter891; + for (_iter891 = this->group_names.begin(); _iter891 != this->group_names.end(); ++_iter891) { - xfer += oprot->writeString((*_iter885)); + xfer += oprot->writeString((*_iter891)); } xfer += oprot->writeListEnd(); } @@ -24177,10 +24177,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 _iter886; - for (_iter886 = (*(this->group_names)).begin(); _iter886 != (*(this->group_names)).end(); ++_iter886) + std::vector ::const_iterator _iter892; + for (_iter892 = (*(this->group_names)).begin(); _iter892 != (*(this->group_names)).end(); ++_iter892) { - xfer += oprot->writeString((*_iter886)); + xfer += oprot->writeString((*_iter892)); } xfer += oprot->writeListEnd(); } @@ -24215,14 +24215,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->success.clear(); - uint32_t _size887; - ::apache::thrift::protocol::TType _etype890; - xfer += iprot->readListBegin(_etype890, _size887); - this->success.resize(_size887); - uint32_t _i891; - for (_i891 = 0; _i891 < _size887; ++_i891) + uint32_t _size893; + ::apache::thrift::protocol::TType _etype896; + xfer += iprot->readListBegin(_etype896, _size893); + this->success.resize(_size893); + uint32_t _i897; + for (_i897 = 0; _i897 < _size893; ++_i897) { - xfer += iprot->readString(this->success[_i891]); + xfer += iprot->readString(this->success[_i897]); } xfer += iprot->readListEnd(); } @@ -24261,10 +24261,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 _iter892; - for (_iter892 = this->success.begin(); _iter892 != this->success.end(); ++_iter892) + std::vector ::const_iterator _iter898; + for (_iter898 = this->success.begin(); _iter898 != this->success.end(); ++_iter898) { - xfer += oprot->writeString((*_iter892)); + xfer += oprot->writeString((*_iter898)); } xfer += oprot->writeListEnd(); } @@ -24303,14 +24303,14 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { (*(this->success)).clear(); - uint32_t _size893; - ::apache::thrift::protocol::TType _etype896; - xfer += iprot->readListBegin(_etype896, _size893); - (*(this->success)).resize(_size893); - uint32_t _i897; - for (_i897 = 0; _i897 < _size893; ++_i897) + uint32_t _size899; + ::apache::thrift::protocol::TType _etype902; + xfer += iprot->readListBegin(_etype902, _size899); + (*(this->success)).resize(_size899); + uint32_t _i903; + for (_i903 = 0; _i903 < _size899; ++_i903) { - xfer += iprot->readString((*(this->success))[_i897]); + xfer += iprot->readString((*(this->success))[_i903]); } xfer += iprot->readListEnd(); } @@ -27094,6 +27094,309 @@ return xfer; } +uint32_t ThriftHiveMetastore_getNextNotification_args::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_STRUCT) { + xfer += this->rqst.read(iprot); + this->__isset.rqst = true; + } else { + xfer += iprot->skip(ftype); + } + break; + default: + xfer += iprot->skip(ftype); + break; + } + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + return xfer; +} + +uint32_t ThriftHiveMetastore_getNextNotification_args::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + xfer += oprot->writeStructBegin("ThriftHiveMetastore_getNextNotification_args"); + + xfer += oprot->writeFieldBegin("rqst", ::apache::thrift::protocol::T_STRUCT, 1); + xfer += this->rqst.write(oprot); + xfer += oprot->writeFieldEnd(); + + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +uint32_t ThriftHiveMetastore_getNextNotification_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + xfer += oprot->writeStructBegin("ThriftHiveMetastore_getNextNotification_pargs"); + + xfer += oprot->writeFieldBegin("rqst", ::apache::thrift::protocol::T_STRUCT, 1); + xfer += (*(this->rqst)).write(oprot); + xfer += oprot->writeFieldEnd(); + + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +uint32_t ThriftHiveMetastore_getNextNotification_result::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 0: + if (ftype == ::apache::thrift::protocol::T_STRUCT) { + xfer += this->success.read(iprot); + this->__isset.success = true; + } else { + xfer += iprot->skip(ftype); + } + break; + default: + xfer += iprot->skip(ftype); + break; + } + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + return xfer; +} + +uint32_t ThriftHiveMetastore_getNextNotification_result::write(::apache::thrift::protocol::TProtocol* oprot) const { + + uint32_t xfer = 0; + + xfer += oprot->writeStructBegin("ThriftHiveMetastore_getNextNotification_result"); + + if (this->__isset.success) { + xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0); + xfer += this->success.write(oprot); + xfer += oprot->writeFieldEnd(); + } + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +uint32_t ThriftHiveMetastore_getNextNotification_presult::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 0: + if (ftype == ::apache::thrift::protocol::T_STRUCT) { + xfer += (*(this->success)).read(iprot); + this->__isset.success = true; + } else { + xfer += iprot->skip(ftype); + } + break; + default: + xfer += iprot->skip(ftype); + break; + } + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + return xfer; +} + +uint32_t ThriftHiveMetastore_getCurrentNotificationEventId_args::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; + } + xfer += iprot->skip(ftype); + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + return xfer; +} + +uint32_t ThriftHiveMetastore_getCurrentNotificationEventId_args::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + xfer += oprot->writeStructBegin("ThriftHiveMetastore_getCurrentNotificationEventId_args"); + + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +uint32_t ThriftHiveMetastore_getCurrentNotificationEventId_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + xfer += oprot->writeStructBegin("ThriftHiveMetastore_getCurrentNotificationEventId_pargs"); + + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +uint32_t ThriftHiveMetastore_getCurrentNotificationEventId_result::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 0: + if (ftype == ::apache::thrift::protocol::T_STRUCT) { + xfer += this->success.read(iprot); + this->__isset.success = true; + } else { + xfer += iprot->skip(ftype); + } + break; + default: + xfer += iprot->skip(ftype); + break; + } + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + return xfer; +} + +uint32_t ThriftHiveMetastore_getCurrentNotificationEventId_result::write(::apache::thrift::protocol::TProtocol* oprot) const { + + uint32_t xfer = 0; + + xfer += oprot->writeStructBegin("ThriftHiveMetastore_getCurrentNotificationEventId_result"); + + if (this->__isset.success) { + xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0); + xfer += this->success.write(oprot); + xfer += oprot->writeFieldEnd(); + } + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +uint32_t ThriftHiveMetastore_getCurrentNotificationEventId_presult::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 0: + if (ftype == ::apache::thrift::protocol::T_STRUCT) { + xfer += (*(this->success)).read(iprot); + this->__isset.success = true; + } else { + xfer += iprot->skip(ftype); + } + break; + default: + xfer += iprot->skip(ftype); + break; + } + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + return xfer; +} + void ThriftHiveMetastoreClient::getMetaConf(std::string& _return, const std::string& key) { send_getMetaConf(key); @@ -34605,6 +34908,121 @@ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "show_compact failed: unknown result"); } +void ThriftHiveMetastoreClient::getNextNotification(NotificationEventResponse& _return, const NotificationEventRequest& rqst) +{ + send_getNextNotification(rqst); + recv_getNextNotification(_return); +} + +void ThriftHiveMetastoreClient::send_getNextNotification(const NotificationEventRequest& rqst) +{ + int32_t cseqid = 0; + oprot_->writeMessageBegin("getNextNotification", ::apache::thrift::protocol::T_CALL, cseqid); + + ThriftHiveMetastore_getNextNotification_pargs args; + args.rqst = &rqst; + args.write(oprot_); + + oprot_->writeMessageEnd(); + oprot_->getTransport()->writeEnd(); + oprot_->getTransport()->flush(); +} + +void ThriftHiveMetastoreClient::recv_getNextNotification(NotificationEventResponse& _return) +{ + + int32_t rseqid = 0; + std::string fname; + ::apache::thrift::protocol::TMessageType mtype; + + iprot_->readMessageBegin(fname, mtype, rseqid); + if (mtype == ::apache::thrift::protocol::T_EXCEPTION) { + ::apache::thrift::TApplicationException x; + x.read(iprot_); + iprot_->readMessageEnd(); + iprot_->getTransport()->readEnd(); + throw x; + } + if (mtype != ::apache::thrift::protocol::T_REPLY) { + iprot_->skip(::apache::thrift::protocol::T_STRUCT); + iprot_->readMessageEnd(); + iprot_->getTransport()->readEnd(); + } + if (fname.compare("getNextNotification") != 0) { + iprot_->skip(::apache::thrift::protocol::T_STRUCT); + iprot_->readMessageEnd(); + iprot_->getTransport()->readEnd(); + } + ThriftHiveMetastore_getNextNotification_presult result; + result.success = &_return; + result.read(iprot_); + iprot_->readMessageEnd(); + iprot_->getTransport()->readEnd(); + + if (result.__isset.success) { + // _return pointer has now been filled + return; + } + throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getNextNotification failed: unknown result"); +} + +void ThriftHiveMetastoreClient::getCurrentNotificationEventId(CurrentNotificationEventId& _return) +{ + send_getCurrentNotificationEventId(); + recv_getCurrentNotificationEventId(_return); +} + +void ThriftHiveMetastoreClient::send_getCurrentNotificationEventId() +{ + int32_t cseqid = 0; + oprot_->writeMessageBegin("getCurrentNotificationEventId", ::apache::thrift::protocol::T_CALL, cseqid); + + ThriftHiveMetastore_getCurrentNotificationEventId_pargs args; + args.write(oprot_); + + oprot_->writeMessageEnd(); + oprot_->getTransport()->writeEnd(); + oprot_->getTransport()->flush(); +} + +void ThriftHiveMetastoreClient::recv_getCurrentNotificationEventId(CurrentNotificationEventId& _return) +{ + + int32_t rseqid = 0; + std::string fname; + ::apache::thrift::protocol::TMessageType mtype; + + iprot_->readMessageBegin(fname, mtype, rseqid); + if (mtype == ::apache::thrift::protocol::T_EXCEPTION) { + ::apache::thrift::TApplicationException x; + x.read(iprot_); + iprot_->readMessageEnd(); + iprot_->getTransport()->readEnd(); + throw x; + } + if (mtype != ::apache::thrift::protocol::T_REPLY) { + iprot_->skip(::apache::thrift::protocol::T_STRUCT); + iprot_->readMessageEnd(); + iprot_->getTransport()->readEnd(); + } + if (fname.compare("getCurrentNotificationEventId") != 0) { + iprot_->skip(::apache::thrift::protocol::T_STRUCT); + iprot_->readMessageEnd(); + iprot_->getTransport()->readEnd(); + } + ThriftHiveMetastore_getCurrentNotificationEventId_presult result; + result.success = &_return; + result.read(iprot_); + iprot_->readMessageEnd(); + iprot_->getTransport()->readEnd(); + + if (result.__isset.success) { + // _return pointer has now been filled + return; + } + throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getCurrentNotificationEventId failed: unknown result"); +} + bool ThriftHiveMetastoreProcessor::dispatchCall(::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, const std::string& fname, int32_t seqid, void* callContext) { ProcessMap::iterator pfn; pfn = processMap_.find(fname); @@ -41615,6 +42033,114 @@ } } +void ThriftHiveMetastoreProcessor::process_getNextNotification(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext) +{ + void* ctx = NULL; + if (this->eventHandler_.get() != NULL) { + ctx = this->eventHandler_->getContext("ThriftHiveMetastore.getNextNotification", callContext); + } + ::apache::thrift::TProcessorContextFreer freer(this->eventHandler_.get(), ctx, "ThriftHiveMetastore.getNextNotification"); + + if (this->eventHandler_.get() != NULL) { + this->eventHandler_->preRead(ctx, "ThriftHiveMetastore.getNextNotification"); + } + + ThriftHiveMetastore_getNextNotification_args args; + args.read(iprot); + iprot->readMessageEnd(); + uint32_t bytes = iprot->getTransport()->readEnd(); + + if (this->eventHandler_.get() != NULL) { + this->eventHandler_->postRead(ctx, "ThriftHiveMetastore.getNextNotification", bytes); + } + + ThriftHiveMetastore_getNextNotification_result result; + try { + iface_->getNextNotification(result.success, args.rqst); + result.__isset.success = true; + } catch (const std::exception& e) { + if (this->eventHandler_.get() != NULL) { + this->eventHandler_->handlerError(ctx, "ThriftHiveMetastore.getNextNotification"); + } + + ::apache::thrift::TApplicationException x(e.what()); + oprot->writeMessageBegin("getNextNotification", ::apache::thrift::protocol::T_EXCEPTION, seqid); + x.write(oprot); + oprot->writeMessageEnd(); + oprot->getTransport()->writeEnd(); + oprot->getTransport()->flush(); + return; + } + + if (this->eventHandler_.get() != NULL) { + this->eventHandler_->preWrite(ctx, "ThriftHiveMetastore.getNextNotification"); + } + + oprot->writeMessageBegin("getNextNotification", ::apache::thrift::protocol::T_REPLY, seqid); + result.write(oprot); + oprot->writeMessageEnd(); + bytes = oprot->getTransport()->writeEnd(); + oprot->getTransport()->flush(); + + if (this->eventHandler_.get() != NULL) { + this->eventHandler_->postWrite(ctx, "ThriftHiveMetastore.getNextNotification", bytes); + } +} + +void ThriftHiveMetastoreProcessor::process_getCurrentNotificationEventId(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext) +{ + void* ctx = NULL; + if (this->eventHandler_.get() != NULL) { + ctx = this->eventHandler_->getContext("ThriftHiveMetastore.getCurrentNotificationEventId", callContext); + } + ::apache::thrift::TProcessorContextFreer freer(this->eventHandler_.get(), ctx, "ThriftHiveMetastore.getCurrentNotificationEventId"); + + if (this->eventHandler_.get() != NULL) { + this->eventHandler_->preRead(ctx, "ThriftHiveMetastore.getCurrentNotificationEventId"); + } + + ThriftHiveMetastore_getCurrentNotificationEventId_args args; + args.read(iprot); + iprot->readMessageEnd(); + uint32_t bytes = iprot->getTransport()->readEnd(); + + if (this->eventHandler_.get() != NULL) { + this->eventHandler_->postRead(ctx, "ThriftHiveMetastore.getCurrentNotificationEventId", bytes); + } + + ThriftHiveMetastore_getCurrentNotificationEventId_result result; + try { + iface_->getCurrentNotificationEventId(result.success); + result.__isset.success = true; + } catch (const std::exception& e) { + if (this->eventHandler_.get() != NULL) { + this->eventHandler_->handlerError(ctx, "ThriftHiveMetastore.getCurrentNotificationEventId"); + } + + ::apache::thrift::TApplicationException x(e.what()); + oprot->writeMessageBegin("getCurrentNotificationEventId", ::apache::thrift::protocol::T_EXCEPTION, seqid); + x.write(oprot); + oprot->writeMessageEnd(); + oprot->getTransport()->writeEnd(); + oprot->getTransport()->flush(); + return; + } + + if (this->eventHandler_.get() != NULL) { + this->eventHandler_->preWrite(ctx, "ThriftHiveMetastore.getCurrentNotificationEventId"); + } + + oprot->writeMessageBegin("getCurrentNotificationEventId", ::apache::thrift::protocol::T_REPLY, seqid); + result.write(oprot); + oprot->writeMessageEnd(); + bytes = oprot->getTransport()->writeEnd(); + oprot->getTransport()->flush(); + + if (this->eventHandler_.get() != NULL) { + this->eventHandler_->postWrite(ctx, "ThriftHiveMetastore.getCurrentNotificationEventId", bytes); + } +} + ::boost::shared_ptr< ::apache::thrift::TProcessor > ThriftHiveMetastoreProcessorFactory::getProcessor(const ::apache::thrift::TConnectionInfo& connInfo) { ::apache::thrift::ReleaseHandler< ThriftHiveMetastoreIfFactory > cleanup(handlerFactory_); ::boost::shared_ptr< ThriftHiveMetastoreIf > handler(handlerFactory_->getHandler(connInfo), cleanup); Index: metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.h =================================================================== --- metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.h (revision 1650429) +++ metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.h (working copy) @@ -133,6 +133,8 @@ virtual void heartbeat_txn_range(HeartbeatTxnRangeResponse& _return, const HeartbeatTxnRangeRequest& txns) = 0; virtual void compact(const CompactionRequest& rqst) = 0; virtual void show_compact(ShowCompactResponse& _return, const ShowCompactRequest& rqst) = 0; + virtual void getNextNotification(NotificationEventResponse& _return, const NotificationEventRequest& rqst) = 0; + virtual void getCurrentNotificationEventId(CurrentNotificationEventId& _return) = 0; }; class ThriftHiveMetastoreIfFactory : virtual public ::facebook::fb303::FacebookServiceIfFactory { @@ -536,6 +538,12 @@ void show_compact(ShowCompactResponse& /* _return */, const ShowCompactRequest& /* rqst */) { return; } + void getNextNotification(NotificationEventResponse& /* _return */, const NotificationEventRequest& /* rqst */) { + return; + } + void getCurrentNotificationEventId(CurrentNotificationEventId& /* _return */) { + return; + } }; typedef struct _ThriftHiveMetastore_getMetaConf_args__isset { @@ -16567,6 +16575,208 @@ }; +typedef struct _ThriftHiveMetastore_getNextNotification_args__isset { + _ThriftHiveMetastore_getNextNotification_args__isset() : rqst(false) {} + bool rqst; +} _ThriftHiveMetastore_getNextNotification_args__isset; + +class ThriftHiveMetastore_getNextNotification_args { + public: + + ThriftHiveMetastore_getNextNotification_args() { + } + + virtual ~ThriftHiveMetastore_getNextNotification_args() throw() {} + + NotificationEventRequest rqst; + + _ThriftHiveMetastore_getNextNotification_args__isset __isset; + + void __set_rqst(const NotificationEventRequest& val) { + rqst = val; + } + + bool operator == (const ThriftHiveMetastore_getNextNotification_args & rhs) const + { + if (!(rqst == rhs.rqst)) + return false; + return true; + } + bool operator != (const ThriftHiveMetastore_getNextNotification_args &rhs) const { + return !(*this == rhs); + } + + bool operator < (const ThriftHiveMetastore_getNextNotification_args & ) const; + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot); + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const; + +}; + + +class ThriftHiveMetastore_getNextNotification_pargs { + public: + + + virtual ~ThriftHiveMetastore_getNextNotification_pargs() throw() {} + + const NotificationEventRequest* rqst; + + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const; + +}; + +typedef struct _ThriftHiveMetastore_getNextNotification_result__isset { + _ThriftHiveMetastore_getNextNotification_result__isset() : success(false) {} + bool success; +} _ThriftHiveMetastore_getNextNotification_result__isset; + +class ThriftHiveMetastore_getNextNotification_result { + public: + + ThriftHiveMetastore_getNextNotification_result() { + } + + virtual ~ThriftHiveMetastore_getNextNotification_result() throw() {} + + NotificationEventResponse success; + + _ThriftHiveMetastore_getNextNotification_result__isset __isset; + + void __set_success(const NotificationEventResponse& val) { + success = val; + } + + bool operator == (const ThriftHiveMetastore_getNextNotification_result & rhs) const + { + if (!(success == rhs.success)) + return false; + return true; + } + bool operator != (const ThriftHiveMetastore_getNextNotification_result &rhs) const { + return !(*this == rhs); + } + + bool operator < (const ThriftHiveMetastore_getNextNotification_result & ) const; + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot); + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const; + +}; + +typedef struct _ThriftHiveMetastore_getNextNotification_presult__isset { + _ThriftHiveMetastore_getNextNotification_presult__isset() : success(false) {} + bool success; +} _ThriftHiveMetastore_getNextNotification_presult__isset; + +class ThriftHiveMetastore_getNextNotification_presult { + public: + + + virtual ~ThriftHiveMetastore_getNextNotification_presult() throw() {} + + NotificationEventResponse* success; + + _ThriftHiveMetastore_getNextNotification_presult__isset __isset; + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot); + +}; + + +class ThriftHiveMetastore_getCurrentNotificationEventId_args { + public: + + ThriftHiveMetastore_getCurrentNotificationEventId_args() { + } + + virtual ~ThriftHiveMetastore_getCurrentNotificationEventId_args() throw() {} + + + bool operator == (const ThriftHiveMetastore_getCurrentNotificationEventId_args & /* rhs */) const + { + return true; + } + bool operator != (const ThriftHiveMetastore_getCurrentNotificationEventId_args &rhs) const { + return !(*this == rhs); + } + + bool operator < (const ThriftHiveMetastore_getCurrentNotificationEventId_args & ) const; + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot); + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const; + +}; + + +class ThriftHiveMetastore_getCurrentNotificationEventId_pargs { + public: + + + virtual ~ThriftHiveMetastore_getCurrentNotificationEventId_pargs() throw() {} + + + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const; + +}; + +typedef struct _ThriftHiveMetastore_getCurrentNotificationEventId_result__isset { + _ThriftHiveMetastore_getCurrentNotificationEventId_result__isset() : success(false) {} + bool success; +} _ThriftHiveMetastore_getCurrentNotificationEventId_result__isset; + +class ThriftHiveMetastore_getCurrentNotificationEventId_result { + public: + + ThriftHiveMetastore_getCurrentNotificationEventId_result() { + } + + virtual ~ThriftHiveMetastore_getCurrentNotificationEventId_result() throw() {} + + CurrentNotificationEventId success; + + _ThriftHiveMetastore_getCurrentNotificationEventId_result__isset __isset; + + void __set_success(const CurrentNotificationEventId& val) { + success = val; + } + + bool operator == (const ThriftHiveMetastore_getCurrentNotificationEventId_result & rhs) const + { + if (!(success == rhs.success)) + return false; + return true; + } + bool operator != (const ThriftHiveMetastore_getCurrentNotificationEventId_result &rhs) const { + return !(*this == rhs); + } + + bool operator < (const ThriftHiveMetastore_getCurrentNotificationEventId_result & ) const; + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot); + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const; + +}; + +typedef struct _ThriftHiveMetastore_getCurrentNotificationEventId_presult__isset { + _ThriftHiveMetastore_getCurrentNotificationEventId_presult__isset() : success(false) {} + bool success; +} _ThriftHiveMetastore_getCurrentNotificationEventId_presult__isset; + +class ThriftHiveMetastore_getCurrentNotificationEventId_presult { + public: + + + virtual ~ThriftHiveMetastore_getCurrentNotificationEventId_presult() throw() {} + + CurrentNotificationEventId* success; + + _ThriftHiveMetastore_getCurrentNotificationEventId_presult__isset __isset; + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot); + +}; + class ThriftHiveMetastoreClient : virtual public ThriftHiveMetastoreIf, public ::facebook::fb303::FacebookServiceClient { public: ThriftHiveMetastoreClient(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> prot) : @@ -16930,6 +17140,12 @@ void show_compact(ShowCompactResponse& _return, const ShowCompactRequest& rqst); void send_show_compact(const ShowCompactRequest& rqst); void recv_show_compact(ShowCompactResponse& _return); + void getNextNotification(NotificationEventResponse& _return, const NotificationEventRequest& rqst); + void send_getNextNotification(const NotificationEventRequest& rqst); + void recv_getNextNotification(NotificationEventResponse& _return); + void getCurrentNotificationEventId(CurrentNotificationEventId& _return); + void send_getCurrentNotificationEventId(); + void recv_getCurrentNotificationEventId(CurrentNotificationEventId& _return); }; class ThriftHiveMetastoreProcessor : public ::facebook::fb303::FacebookServiceProcessor { @@ -17057,6 +17273,8 @@ void process_heartbeat_txn_range(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext); void process_compact(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext); void process_show_compact(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext); + void process_getNextNotification(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext); + void process_getCurrentNotificationEventId(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext); public: ThriftHiveMetastoreProcessor(boost::shared_ptr iface) : ::facebook::fb303::FacebookServiceProcessor(iface), @@ -17178,6 +17396,8 @@ processMap_["heartbeat_txn_range"] = &ThriftHiveMetastoreProcessor::process_heartbeat_txn_range; processMap_["compact"] = &ThriftHiveMetastoreProcessor::process_compact; processMap_["show_compact"] = &ThriftHiveMetastoreProcessor::process_show_compact; + processMap_["getNextNotification"] = &ThriftHiveMetastoreProcessor::process_getNextNotification; + processMap_["getCurrentNotificationEventId"] = &ThriftHiveMetastoreProcessor::process_getCurrentNotificationEventId; } virtual ~ThriftHiveMetastoreProcessor() {} @@ -18332,6 +18552,26 @@ return; } + void getNextNotification(NotificationEventResponse& _return, const NotificationEventRequest& rqst) { + size_t sz = ifaces_.size(); + size_t i = 0; + for (; i < (sz - 1); ++i) { + ifaces_[i]->getNextNotification(_return, rqst); + } + ifaces_[i]->getNextNotification(_return, rqst); + return; + } + + void getCurrentNotificationEventId(CurrentNotificationEventId& _return) { + size_t sz = ifaces_.size(); + size_t i = 0; + for (; i < (sz - 1); ++i) { + ifaces_[i]->getCurrentNotificationEventId(_return); + } + ifaces_[i]->getCurrentNotificationEventId(_return); + return; + } + }; }}} // namespace Index: metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore_server.skeleton.cpp =================================================================== --- metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore_server.skeleton.cpp (revision 1650429) +++ metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore_server.skeleton.cpp (working copy) @@ -607,6 +607,16 @@ printf("show_compact\n"); } + void getNextNotification(NotificationEventResponse& _return, const NotificationEventRequest& rqst) { + // Your implementation goes here + printf("getNextNotification\n"); + } + + void getCurrentNotificationEventId(CurrentNotificationEventId& _return) { + // Your implementation goes here + printf("getCurrentNotificationEventId\n"); + } + }; int main(int argc, char **argv) { Index: metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp =================================================================== --- metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp (revision 1650429) +++ metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp (working copy) @@ -9282,6 +9282,374 @@ swap(a.compacts, b.compacts); } +const char* NotificationEventRequest::ascii_fingerprint = "6E578DA8AB10EED824A75534350EBAEF"; +const uint8_t NotificationEventRequest::binary_fingerprint[16] = {0x6E,0x57,0x8D,0xA8,0xAB,0x10,0xEE,0xD8,0x24,0xA7,0x55,0x34,0x35,0x0E,0xBA,0xEF}; + +uint32_t NotificationEventRequest::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; + + bool isset_lastEvent = false; + + 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_I64) { + xfer += iprot->readI64(this->lastEvent); + isset_lastEvent = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 2: + if (ftype == ::apache::thrift::protocol::T_I32) { + xfer += iprot->readI32(this->maxEvents); + this->__isset.maxEvents = true; + } else { + xfer += iprot->skip(ftype); + } + break; + default: + xfer += iprot->skip(ftype); + break; + } + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + if (!isset_lastEvent) + throw TProtocolException(TProtocolException::INVALID_DATA); + return xfer; +} + +uint32_t NotificationEventRequest::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + xfer += oprot->writeStructBegin("NotificationEventRequest"); + + xfer += oprot->writeFieldBegin("lastEvent", ::apache::thrift::protocol::T_I64, 1); + xfer += oprot->writeI64(this->lastEvent); + xfer += oprot->writeFieldEnd(); + + if (this->__isset.maxEvents) { + xfer += oprot->writeFieldBegin("maxEvents", ::apache::thrift::protocol::T_I32, 2); + xfer += oprot->writeI32(this->maxEvents); + xfer += oprot->writeFieldEnd(); + } + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +void swap(NotificationEventRequest &a, NotificationEventRequest &b) { + using ::std::swap; + swap(a.lastEvent, b.lastEvent); + swap(a.maxEvents, b.maxEvents); + swap(a.__isset, b.__isset); +} + +const char* NotificationEvent::ascii_fingerprint = "ACAF0036D9999F3A389F490F5E22D369"; +const uint8_t NotificationEvent::binary_fingerprint[16] = {0xAC,0xAF,0x00,0x36,0xD9,0x99,0x9F,0x3A,0x38,0x9F,0x49,0x0F,0x5E,0x22,0xD3,0x69}; + +uint32_t NotificationEvent::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; + + bool isset_eventId = false; + bool isset_eventTime = false; + bool isset_eventType = false; + bool isset_message = false; + + 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_I64) { + xfer += iprot->readI64(this->eventId); + isset_eventId = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 2: + if (ftype == ::apache::thrift::protocol::T_I32) { + xfer += iprot->readI32(this->eventTime); + isset_eventTime = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 3: + if (ftype == ::apache::thrift::protocol::T_STRING) { + xfer += iprot->readString(this->eventType); + isset_eventType = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 4: + if (ftype == ::apache::thrift::protocol::T_STRING) { + xfer += iprot->readString(this->dbName); + this->__isset.dbName = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 5: + if (ftype == ::apache::thrift::protocol::T_STRING) { + xfer += iprot->readString(this->tableName); + this->__isset.tableName = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 6: + if (ftype == ::apache::thrift::protocol::T_STRING) { + xfer += iprot->readString(this->message); + isset_message = true; + } else { + xfer += iprot->skip(ftype); + } + break; + default: + xfer += iprot->skip(ftype); + break; + } + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + if (!isset_eventId) + throw TProtocolException(TProtocolException::INVALID_DATA); + if (!isset_eventTime) + throw TProtocolException(TProtocolException::INVALID_DATA); + if (!isset_eventType) + throw TProtocolException(TProtocolException::INVALID_DATA); + if (!isset_message) + throw TProtocolException(TProtocolException::INVALID_DATA); + return xfer; +} + +uint32_t NotificationEvent::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + xfer += oprot->writeStructBegin("NotificationEvent"); + + xfer += oprot->writeFieldBegin("eventId", ::apache::thrift::protocol::T_I64, 1); + xfer += oprot->writeI64(this->eventId); + xfer += oprot->writeFieldEnd(); + + xfer += oprot->writeFieldBegin("eventTime", ::apache::thrift::protocol::T_I32, 2); + xfer += oprot->writeI32(this->eventTime); + xfer += oprot->writeFieldEnd(); + + xfer += oprot->writeFieldBegin("eventType", ::apache::thrift::protocol::T_STRING, 3); + xfer += oprot->writeString(this->eventType); + xfer += oprot->writeFieldEnd(); + + if (this->__isset.dbName) { + xfer += oprot->writeFieldBegin("dbName", ::apache::thrift::protocol::T_STRING, 4); + xfer += oprot->writeString(this->dbName); + xfer += oprot->writeFieldEnd(); + } + if (this->__isset.tableName) { + xfer += oprot->writeFieldBegin("tableName", ::apache::thrift::protocol::T_STRING, 5); + xfer += oprot->writeString(this->tableName); + xfer += oprot->writeFieldEnd(); + } + xfer += oprot->writeFieldBegin("message", ::apache::thrift::protocol::T_STRING, 6); + xfer += oprot->writeString(this->message); + xfer += oprot->writeFieldEnd(); + + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +void swap(NotificationEvent &a, NotificationEvent &b) { + using ::std::swap; + swap(a.eventId, b.eventId); + swap(a.eventTime, b.eventTime); + swap(a.eventType, b.eventType); + swap(a.dbName, b.dbName); + swap(a.tableName, b.tableName); + swap(a.message, b.message); + swap(a.__isset, b.__isset); +} + +const char* NotificationEventResponse::ascii_fingerprint = "EE3DB23399639114BCD1782A0FB01818"; +const uint8_t NotificationEventResponse::binary_fingerprint[16] = {0xEE,0x3D,0xB2,0x33,0x99,0x63,0x91,0x14,0xBC,0xD1,0x78,0x2A,0x0F,0xB0,0x18,0x18}; + +uint32_t NotificationEventResponse::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; + + bool isset_events = false; + + 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_LIST) { + { + this->events.clear(); + uint32_t _size401; + ::apache::thrift::protocol::TType _etype404; + xfer += iprot->readListBegin(_etype404, _size401); + this->events.resize(_size401); + uint32_t _i405; + for (_i405 = 0; _i405 < _size401; ++_i405) + { + xfer += this->events[_i405].read(iprot); + } + xfer += iprot->readListEnd(); + } + isset_events = true; + } else { + xfer += iprot->skip(ftype); + } + break; + default: + xfer += iprot->skip(ftype); + break; + } + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + if (!isset_events) + throw TProtocolException(TProtocolException::INVALID_DATA); + return xfer; +} + +uint32_t NotificationEventResponse::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + xfer += oprot->writeStructBegin("NotificationEventResponse"); + + xfer += oprot->writeFieldBegin("events", ::apache::thrift::protocol::T_LIST, 1); + { + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->events.size())); + std::vector ::const_iterator _iter406; + for (_iter406 = this->events.begin(); _iter406 != this->events.end(); ++_iter406) + { + xfer += (*_iter406).write(oprot); + } + xfer += oprot->writeListEnd(); + } + xfer += oprot->writeFieldEnd(); + + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +void swap(NotificationEventResponse &a, NotificationEventResponse &b) { + using ::std::swap; + swap(a.events, b.events); +} + +const char* CurrentNotificationEventId::ascii_fingerprint = "56A59CE7FFAF82BCA8A19FAACDE4FB75"; +const uint8_t CurrentNotificationEventId::binary_fingerprint[16] = {0x56,0xA5,0x9C,0xE7,0xFF,0xAF,0x82,0xBC,0xA8,0xA1,0x9F,0xAA,0xCD,0xE4,0xFB,0x75}; + +uint32_t CurrentNotificationEventId::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; + + bool isset_eventId = false; + + 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_I64) { + xfer += iprot->readI64(this->eventId); + isset_eventId = true; + } else { + xfer += iprot->skip(ftype); + } + break; + default: + xfer += iprot->skip(ftype); + break; + } + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + if (!isset_eventId) + throw TProtocolException(TProtocolException::INVALID_DATA); + return xfer; +} + +uint32_t CurrentNotificationEventId::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + xfer += oprot->writeStructBegin("CurrentNotificationEventId"); + + xfer += oprot->writeFieldBegin("eventId", ::apache::thrift::protocol::T_I64, 1); + xfer += oprot->writeI64(this->eventId); + xfer += oprot->writeFieldEnd(); + + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +void swap(CurrentNotificationEventId &a, CurrentNotificationEventId &b) { + using ::std::swap; + swap(a.eventId, b.eventId); +} + const char* MetaException::ascii_fingerprint = "EFB929595D312AC8F305D5A794CFEDA1"; const uint8_t MetaException::binary_fingerprint[16] = {0xEF,0xB9,0x29,0x59,0x5D,0x31,0x2A,0xC8,0xF3,0x05,0xD5,0xA7,0x94,0xCF,0xED,0xA1}; Index: metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h =================================================================== --- metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h (revision 1650429) +++ metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h (working copy) @@ -5078,6 +5078,218 @@ void swap(ShowCompactResponse &a, ShowCompactResponse &b); +typedef struct _NotificationEventRequest__isset { + _NotificationEventRequest__isset() : maxEvents(false) {} + bool maxEvents; +} _NotificationEventRequest__isset; + +class NotificationEventRequest { + public: + + static const char* ascii_fingerprint; // = "6E578DA8AB10EED824A75534350EBAEF"; + static const uint8_t binary_fingerprint[16]; // = {0x6E,0x57,0x8D,0xA8,0xAB,0x10,0xEE,0xD8,0x24,0xA7,0x55,0x34,0x35,0x0E,0xBA,0xEF}; + + NotificationEventRequest() : lastEvent(0), maxEvents(0) { + } + + virtual ~NotificationEventRequest() throw() {} + + int64_t lastEvent; + int32_t maxEvents; + + _NotificationEventRequest__isset __isset; + + void __set_lastEvent(const int64_t val) { + lastEvent = val; + } + + void __set_maxEvents(const int32_t val) { + maxEvents = val; + __isset.maxEvents = true; + } + + bool operator == (const NotificationEventRequest & rhs) const + { + if (!(lastEvent == rhs.lastEvent)) + return false; + if (__isset.maxEvents != rhs.__isset.maxEvents) + return false; + else if (__isset.maxEvents && !(maxEvents == rhs.maxEvents)) + return false; + return true; + } + bool operator != (const NotificationEventRequest &rhs) const { + return !(*this == rhs); + } + + bool operator < (const NotificationEventRequest & ) const; + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot); + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const; + +}; + +void swap(NotificationEventRequest &a, NotificationEventRequest &b); + +typedef struct _NotificationEvent__isset { + _NotificationEvent__isset() : dbName(false), tableName(false) {} + bool dbName; + bool tableName; +} _NotificationEvent__isset; + +class NotificationEvent { + public: + + static const char* ascii_fingerprint; // = "ACAF0036D9999F3A389F490F5E22D369"; + static const uint8_t binary_fingerprint[16]; // = {0xAC,0xAF,0x00,0x36,0xD9,0x99,0x9F,0x3A,0x38,0x9F,0x49,0x0F,0x5E,0x22,0xD3,0x69}; + + NotificationEvent() : eventId(0), eventTime(0), eventType(), dbName(), tableName(), message() { + } + + virtual ~NotificationEvent() throw() {} + + int64_t eventId; + int32_t eventTime; + std::string eventType; + std::string dbName; + std::string tableName; + std::string message; + + _NotificationEvent__isset __isset; + + void __set_eventId(const int64_t val) { + eventId = val; + } + + void __set_eventTime(const int32_t val) { + eventTime = val; + } + + void __set_eventType(const std::string& val) { + eventType = val; + } + + void __set_dbName(const std::string& val) { + dbName = val; + __isset.dbName = true; + } + + void __set_tableName(const std::string& val) { + tableName = val; + __isset.tableName = true; + } + + void __set_message(const std::string& val) { + message = val; + } + + bool operator == (const NotificationEvent & rhs) const + { + if (!(eventId == rhs.eventId)) + return false; + if (!(eventTime == rhs.eventTime)) + return false; + if (!(eventType == rhs.eventType)) + return false; + if (__isset.dbName != rhs.__isset.dbName) + return false; + else if (__isset.dbName && !(dbName == rhs.dbName)) + return false; + if (__isset.tableName != rhs.__isset.tableName) + return false; + else if (__isset.tableName && !(tableName == rhs.tableName)) + return false; + if (!(message == rhs.message)) + return false; + return true; + } + bool operator != (const NotificationEvent &rhs) const { + return !(*this == rhs); + } + + bool operator < (const NotificationEvent & ) const; + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot); + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const; + +}; + +void swap(NotificationEvent &a, NotificationEvent &b); + + +class NotificationEventResponse { + public: + + static const char* ascii_fingerprint; // = "EE3DB23399639114BCD1782A0FB01818"; + static const uint8_t binary_fingerprint[16]; // = {0xEE,0x3D,0xB2,0x33,0x99,0x63,0x91,0x14,0xBC,0xD1,0x78,0x2A,0x0F,0xB0,0x18,0x18}; + + NotificationEventResponse() { + } + + virtual ~NotificationEventResponse() throw() {} + + std::vector events; + + void __set_events(const std::vector & val) { + events = val; + } + + bool operator == (const NotificationEventResponse & rhs) const + { + if (!(events == rhs.events)) + return false; + return true; + } + bool operator != (const NotificationEventResponse &rhs) const { + return !(*this == rhs); + } + + bool operator < (const NotificationEventResponse & ) const; + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot); + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const; + +}; + +void swap(NotificationEventResponse &a, NotificationEventResponse &b); + + +class CurrentNotificationEventId { + public: + + static const char* ascii_fingerprint; // = "56A59CE7FFAF82BCA8A19FAACDE4FB75"; + static const uint8_t binary_fingerprint[16]; // = {0x56,0xA5,0x9C,0xE7,0xFF,0xAF,0x82,0xBC,0xA8,0xA1,0x9F,0xAA,0xCD,0xE4,0xFB,0x75}; + + CurrentNotificationEventId() : eventId(0) { + } + + virtual ~CurrentNotificationEventId() throw() {} + + int64_t eventId; + + void __set_eventId(const int64_t val) { + eventId = val; + } + + bool operator == (const CurrentNotificationEventId & rhs) const + { + if (!(eventId == rhs.eventId)) + return false; + return true; + } + bool operator != (const CurrentNotificationEventId &rhs) const { + return !(*this == rhs); + } + + bool operator < (const CurrentNotificationEventId & ) const; + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot); + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const; + +}; + +void swap(CurrentNotificationEventId &a, CurrentNotificationEventId &b); + typedef struct _MetaException__isset { _MetaException__isset() : message(false) {} bool message; Index: metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CurrentNotificationEventId.java =================================================================== --- metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CurrentNotificationEventId.java (revision 0) +++ metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CurrentNotificationEventId.java (working copy) @@ -0,0 +1,383 @@ +/** + * Autogenerated by Thrift Compiler (0.9.0) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package org.apache.hadoop.hive.metastore.api; + +import org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; + +import org.apache.thrift.scheme.TupleScheme; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.protocol.TProtocolException; +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.TException; +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 CurrentNotificationEventId 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("CurrentNotificationEventId"); + + private static final org.apache.thrift.protocol.TField EVENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("eventId", org.apache.thrift.protocol.TType.I64, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new CurrentNotificationEventIdStandardSchemeFactory()); + schemes.put(TupleScheme.class, new CurrentNotificationEventIdTupleSchemeFactory()); + } + + private long eventId; // 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 { + EVENT_ID((short)1, "eventId"); + + 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: // EVENT_ID + return EVENT_ID; + 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 + private static final int __EVENTID_ISSET_ID = 0; + private byte __isset_bitfield = 0; + 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.EVENT_ID, new org.apache.thrift.meta_data.FieldMetaData("eventId", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(CurrentNotificationEventId.class, metaDataMap); + } + + public CurrentNotificationEventId() { + } + + public CurrentNotificationEventId( + long eventId) + { + this(); + this.eventId = eventId; + setEventIdIsSet(true); + } + + /** + * Performs a deep copy on other. + */ + public CurrentNotificationEventId(CurrentNotificationEventId other) { + __isset_bitfield = other.__isset_bitfield; + this.eventId = other.eventId; + } + + public CurrentNotificationEventId deepCopy() { + return new CurrentNotificationEventId(this); + } + + @Override + public void clear() { + setEventIdIsSet(false); + this.eventId = 0; + } + + public long getEventId() { + return this.eventId; + } + + public void setEventId(long eventId) { + this.eventId = eventId; + setEventIdIsSet(true); + } + + public void unsetEventId() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __EVENTID_ISSET_ID); + } + + /** Returns true if field eventId is set (has been assigned a value) and false otherwise */ + public boolean isSetEventId() { + return EncodingUtils.testBit(__isset_bitfield, __EVENTID_ISSET_ID); + } + + public void setEventIdIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __EVENTID_ISSET_ID, value); + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case EVENT_ID: + if (value == null) { + unsetEventId(); + } else { + setEventId((Long)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case EVENT_ID: + return Long.valueOf(getEventId()); + + } + 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 EVENT_ID: + return isSetEventId(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof CurrentNotificationEventId) + return this.equals((CurrentNotificationEventId)that); + return false; + } + + public boolean equals(CurrentNotificationEventId that) { + if (that == null) + return false; + + boolean this_present_eventId = true; + boolean that_present_eventId = true; + if (this_present_eventId || that_present_eventId) { + if (!(this_present_eventId && that_present_eventId)) + return false; + if (this.eventId != that.eventId) + return false; + } + + return true; + } + + @Override + public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_eventId = true; + builder.append(present_eventId); + if (present_eventId) + builder.append(eventId); + + return builder.toHashCode(); + } + + public int compareTo(CurrentNotificationEventId other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + CurrentNotificationEventId typedOther = (CurrentNotificationEventId)other; + + lastComparison = Boolean.valueOf(isSetEventId()).compareTo(typedOther.isSetEventId()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetEventId()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.eventId, typedOther.eventId); + 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 { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("CurrentNotificationEventId("); + boolean first = true; + + sb.append("eventId:"); + sb.append(this.eventId); + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + if (!isSetEventId()) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'eventId' is unset! Struct:" + toString()); + } + + // check for sub-struct validity + } + + 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 { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + 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); + } + } + + private static class CurrentNotificationEventIdStandardSchemeFactory implements SchemeFactory { + public CurrentNotificationEventIdStandardScheme getScheme() { + return new CurrentNotificationEventIdStandardScheme(); + } + } + + private static class CurrentNotificationEventIdStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, CurrentNotificationEventId struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // EVENT_ID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.eventId = iprot.readI64(); + struct.setEventIdIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, CurrentNotificationEventId struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(EVENT_ID_FIELD_DESC); + oprot.writeI64(struct.eventId); + oprot.writeFieldEnd(); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class CurrentNotificationEventIdTupleSchemeFactory implements SchemeFactory { + public CurrentNotificationEventIdTupleScheme getScheme() { + return new CurrentNotificationEventIdTupleScheme(); + } + } + + private static class CurrentNotificationEventIdTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, CurrentNotificationEventId struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + oprot.writeI64(struct.eventId); + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, CurrentNotificationEventId struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + struct.eventId = iprot.readI64(); + struct.setEventIdIsSet(true); + } + } + +} + Index: metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/NotificationEvent.java =================================================================== --- metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/NotificationEvent.java (revision 0) +++ metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/NotificationEvent.java (working copy) @@ -0,0 +1,896 @@ +/** + * Autogenerated by Thrift Compiler (0.9.0) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package org.apache.hadoop.hive.metastore.api; + +import org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; + +import org.apache.thrift.scheme.TupleScheme; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.protocol.TProtocolException; +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.TException; +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 NotificationEvent 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("NotificationEvent"); + + private static final org.apache.thrift.protocol.TField EVENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("eventId", org.apache.thrift.protocol.TType.I64, (short)1); + private static final org.apache.thrift.protocol.TField EVENT_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("eventTime", org.apache.thrift.protocol.TType.I32, (short)2); + private static final org.apache.thrift.protocol.TField EVENT_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("eventType", org.apache.thrift.protocol.TType.STRING, (short)3); + 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)4); + 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)5); + private static final org.apache.thrift.protocol.TField MESSAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("message", org.apache.thrift.protocol.TType.STRING, (short)6); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new NotificationEventStandardSchemeFactory()); + schemes.put(TupleScheme.class, new NotificationEventTupleSchemeFactory()); + } + + private long eventId; // required + private int eventTime; // required + private String eventType; // required + private String dbName; // optional + private String tableName; // optional + private String message; // 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 { + EVENT_ID((short)1, "eventId"), + EVENT_TIME((short)2, "eventTime"), + EVENT_TYPE((short)3, "eventType"), + DB_NAME((short)4, "dbName"), + TABLE_NAME((short)5, "tableName"), + MESSAGE((short)6, "message"); + + 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: // EVENT_ID + return EVENT_ID; + case 2: // EVENT_TIME + return EVENT_TIME; + case 3: // EVENT_TYPE + return EVENT_TYPE; + case 4: // DB_NAME + return DB_NAME; + case 5: // TABLE_NAME + return TABLE_NAME; + case 6: // MESSAGE + return MESSAGE; + 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 + private static final int __EVENTID_ISSET_ID = 0; + private static final int __EVENTTIME_ISSET_ID = 1; + private byte __isset_bitfield = 0; + private _Fields optionals[] = {_Fields.DB_NAME,_Fields.TABLE_NAME}; + 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.EVENT_ID, new org.apache.thrift.meta_data.FieldMetaData("eventId", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))); + tmpMap.put(_Fields.EVENT_TIME, new org.apache.thrift.meta_data.FieldMetaData("eventTime", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); + tmpMap.put(_Fields.EVENT_TYPE, new org.apache.thrift.meta_data.FieldMetaData("eventType", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("dbName", org.apache.thrift.TFieldRequirementType.OPTIONAL, + 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.OPTIONAL, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + tmpMap.put(_Fields.MESSAGE, new org.apache.thrift.meta_data.FieldMetaData("message", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(NotificationEvent.class, metaDataMap); + } + + public NotificationEvent() { + } + + public NotificationEvent( + long eventId, + int eventTime, + String eventType, + String message) + { + this(); + this.eventId = eventId; + setEventIdIsSet(true); + this.eventTime = eventTime; + setEventTimeIsSet(true); + this.eventType = eventType; + this.message = message; + } + + /** + * Performs a deep copy on other. + */ + public NotificationEvent(NotificationEvent other) { + __isset_bitfield = other.__isset_bitfield; + this.eventId = other.eventId; + this.eventTime = other.eventTime; + if (other.isSetEventType()) { + this.eventType = other.eventType; + } + if (other.isSetDbName()) { + this.dbName = other.dbName; + } + if (other.isSetTableName()) { + this.tableName = other.tableName; + } + if (other.isSetMessage()) { + this.message = other.message; + } + } + + public NotificationEvent deepCopy() { + return new NotificationEvent(this); + } + + @Override + public void clear() { + setEventIdIsSet(false); + this.eventId = 0; + setEventTimeIsSet(false); + this.eventTime = 0; + this.eventType = null; + this.dbName = null; + this.tableName = null; + this.message = null; + } + + public long getEventId() { + return this.eventId; + } + + public void setEventId(long eventId) { + this.eventId = eventId; + setEventIdIsSet(true); + } + + public void unsetEventId() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __EVENTID_ISSET_ID); + } + + /** Returns true if field eventId is set (has been assigned a value) and false otherwise */ + public boolean isSetEventId() { + return EncodingUtils.testBit(__isset_bitfield, __EVENTID_ISSET_ID); + } + + public void setEventIdIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __EVENTID_ISSET_ID, value); + } + + public int getEventTime() { + return this.eventTime; + } + + public void setEventTime(int eventTime) { + this.eventTime = eventTime; + setEventTimeIsSet(true); + } + + public void unsetEventTime() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __EVENTTIME_ISSET_ID); + } + + /** Returns true if field eventTime is set (has been assigned a value) and false otherwise */ + public boolean isSetEventTime() { + return EncodingUtils.testBit(__isset_bitfield, __EVENTTIME_ISSET_ID); + } + + public void setEventTimeIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __EVENTTIME_ISSET_ID, value); + } + + public String getEventType() { + return this.eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public void unsetEventType() { + this.eventType = null; + } + + /** Returns true if field eventType is set (has been assigned a value) and false otherwise */ + public boolean isSetEventType() { + return this.eventType != null; + } + + public void setEventTypeIsSet(boolean value) { + if (!value) { + this.eventType = 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 String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } + + public void unsetMessage() { + this.message = null; + } + + /** Returns true if field message is set (has been assigned a value) and false otherwise */ + public boolean isSetMessage() { + return this.message != null; + } + + public void setMessageIsSet(boolean value) { + if (!value) { + this.message = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case EVENT_ID: + if (value == null) { + unsetEventId(); + } else { + setEventId((Long)value); + } + break; + + case EVENT_TIME: + if (value == null) { + unsetEventTime(); + } else { + setEventTime((Integer)value); + } + break; + + case EVENT_TYPE: + if (value == null) { + unsetEventType(); + } else { + setEventType((String)value); + } + break; + + case DB_NAME: + if (value == null) { + unsetDbName(); + } else { + setDbName((String)value); + } + break; + + case TABLE_NAME: + if (value == null) { + unsetTableName(); + } else { + setTableName((String)value); + } + break; + + case MESSAGE: + if (value == null) { + unsetMessage(); + } else { + setMessage((String)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case EVENT_ID: + return Long.valueOf(getEventId()); + + case EVENT_TIME: + return Integer.valueOf(getEventTime()); + + case EVENT_TYPE: + return getEventType(); + + case DB_NAME: + return getDbName(); + + case TABLE_NAME: + return getTableName(); + + case MESSAGE: + return getMessage(); + + } + 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 EVENT_ID: + return isSetEventId(); + case EVENT_TIME: + return isSetEventTime(); + case EVENT_TYPE: + return isSetEventType(); + case DB_NAME: + return isSetDbName(); + case TABLE_NAME: + return isSetTableName(); + case MESSAGE: + return isSetMessage(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof NotificationEvent) + return this.equals((NotificationEvent)that); + return false; + } + + public boolean equals(NotificationEvent that) { + if (that == null) + return false; + + boolean this_present_eventId = true; + boolean that_present_eventId = true; + if (this_present_eventId || that_present_eventId) { + if (!(this_present_eventId && that_present_eventId)) + return false; + if (this.eventId != that.eventId) + return false; + } + + boolean this_present_eventTime = true; + boolean that_present_eventTime = true; + if (this_present_eventTime || that_present_eventTime) { + if (!(this_present_eventTime && that_present_eventTime)) + return false; + if (this.eventTime != that.eventTime) + return false; + } + + boolean this_present_eventType = true && this.isSetEventType(); + boolean that_present_eventType = true && that.isSetEventType(); + if (this_present_eventType || that_present_eventType) { + if (!(this_present_eventType && that_present_eventType)) + return false; + if (!this.eventType.equals(that.eventType)) + 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; + } + + boolean this_present_message = true && this.isSetMessage(); + boolean that_present_message = true && that.isSetMessage(); + if (this_present_message || that_present_message) { + if (!(this_present_message && that_present_message)) + return false; + if (!this.message.equals(that.message)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_eventId = true; + builder.append(present_eventId); + if (present_eventId) + builder.append(eventId); + + boolean present_eventTime = true; + builder.append(present_eventTime); + if (present_eventTime) + builder.append(eventTime); + + boolean present_eventType = true && (isSetEventType()); + builder.append(present_eventType); + if (present_eventType) + builder.append(eventType); + + boolean present_dbName = true && (isSetDbName()); + builder.append(present_dbName); + if (present_dbName) + builder.append(dbName); + + boolean present_tableName = true && (isSetTableName()); + builder.append(present_tableName); + if (present_tableName) + builder.append(tableName); + + boolean present_message = true && (isSetMessage()); + builder.append(present_message); + if (present_message) + builder.append(message); + + return builder.toHashCode(); + } + + public int compareTo(NotificationEvent other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + NotificationEvent typedOther = (NotificationEvent)other; + + lastComparison = Boolean.valueOf(isSetEventId()).compareTo(typedOther.isSetEventId()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetEventId()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.eventId, typedOther.eventId); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetEventTime()).compareTo(typedOther.isSetEventTime()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetEventTime()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.eventTime, typedOther.eventTime); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetEventType()).compareTo(typedOther.isSetEventType()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetEventType()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.eventType, typedOther.eventType); + if (lastComparison != 0) { + return lastComparison; + } + } + 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; + } + } + lastComparison = Boolean.valueOf(isSetMessage()).compareTo(typedOther.isSetMessage()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetMessage()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.message, typedOther.message); + 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 { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("NotificationEvent("); + boolean first = true; + + sb.append("eventId:"); + sb.append(this.eventId); + first = false; + if (!first) sb.append(", "); + sb.append("eventTime:"); + sb.append(this.eventTime); + first = false; + if (!first) sb.append(", "); + sb.append("eventType:"); + if (this.eventType == null) { + sb.append("null"); + } else { + sb.append(this.eventType); + } + first = false; + if (isSetDbName()) { + if (!first) sb.append(", "); + sb.append("dbName:"); + if (this.dbName == null) { + sb.append("null"); + } else { + sb.append(this.dbName); + } + first = false; + } + if (isSetTableName()) { + if (!first) sb.append(", "); + sb.append("tableName:"); + if (this.tableName == null) { + sb.append("null"); + } else { + sb.append(this.tableName); + } + first = false; + } + if (!first) sb.append(", "); + sb.append("message:"); + if (this.message == null) { + sb.append("null"); + } else { + sb.append(this.message); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + if (!isSetEventId()) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'eventId' is unset! Struct:" + toString()); + } + + if (!isSetEventTime()) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'eventTime' is unset! Struct:" + toString()); + } + + if (!isSetEventType()) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'eventType' is unset! Struct:" + toString()); + } + + if (!isSetMessage()) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'message' is unset! Struct:" + toString()); + } + + // check for sub-struct validity + } + + 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 { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + 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); + } + } + + private static class NotificationEventStandardSchemeFactory implements SchemeFactory { + public NotificationEventStandardScheme getScheme() { + return new NotificationEventStandardScheme(); + } + } + + private static class NotificationEventStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, NotificationEvent struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // EVENT_ID + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.eventId = iprot.readI64(); + struct.setEventIdIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // EVENT_TIME + if (schemeField.type == org.apache.thrift.protocol.TType.I32) { + struct.eventTime = iprot.readI32(); + struct.setEventTimeIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 3: // EVENT_TYPE + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.eventType = iprot.readString(); + struct.setEventTypeIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 4: // DB_NAME + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.dbName = iprot.readString(); + struct.setDbNameIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 5: // TABLE_NAME + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.tableName = iprot.readString(); + struct.setTableNameIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 6: // MESSAGE + if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { + struct.message = iprot.readString(); + struct.setMessageIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, NotificationEvent struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(EVENT_ID_FIELD_DESC); + oprot.writeI64(struct.eventId); + oprot.writeFieldEnd(); + oprot.writeFieldBegin(EVENT_TIME_FIELD_DESC); + oprot.writeI32(struct.eventTime); + oprot.writeFieldEnd(); + if (struct.eventType != null) { + oprot.writeFieldBegin(EVENT_TYPE_FIELD_DESC); + oprot.writeString(struct.eventType); + oprot.writeFieldEnd(); + } + if (struct.dbName != null) { + if (struct.isSetDbName()) { + oprot.writeFieldBegin(DB_NAME_FIELD_DESC); + oprot.writeString(struct.dbName); + oprot.writeFieldEnd(); + } + } + if (struct.tableName != null) { + if (struct.isSetTableName()) { + oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC); + oprot.writeString(struct.tableName); + oprot.writeFieldEnd(); + } + } + if (struct.message != null) { + oprot.writeFieldBegin(MESSAGE_FIELD_DESC); + oprot.writeString(struct.message); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class NotificationEventTupleSchemeFactory implements SchemeFactory { + public NotificationEventTupleScheme getScheme() { + return new NotificationEventTupleScheme(); + } + } + + private static class NotificationEventTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, NotificationEvent struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + oprot.writeI64(struct.eventId); + oprot.writeI32(struct.eventTime); + oprot.writeString(struct.eventType); + oprot.writeString(struct.message); + BitSet optionals = new BitSet(); + if (struct.isSetDbName()) { + optionals.set(0); + } + if (struct.isSetTableName()) { + optionals.set(1); + } + oprot.writeBitSet(optionals, 2); + if (struct.isSetDbName()) { + oprot.writeString(struct.dbName); + } + if (struct.isSetTableName()) { + oprot.writeString(struct.tableName); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, NotificationEvent struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + struct.eventId = iprot.readI64(); + struct.setEventIdIsSet(true); + struct.eventTime = iprot.readI32(); + struct.setEventTimeIsSet(true); + struct.eventType = iprot.readString(); + struct.setEventTypeIsSet(true); + struct.message = iprot.readString(); + struct.setMessageIsSet(true); + BitSet incoming = iprot.readBitSet(2); + if (incoming.get(0)) { + struct.dbName = iprot.readString(); + struct.setDbNameIsSet(true); + } + if (incoming.get(1)) { + struct.tableName = iprot.readString(); + struct.setTableNameIsSet(true); + } + } + } + +} + Index: metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/NotificationEventRequest.java =================================================================== --- metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/NotificationEventRequest.java (revision 0) +++ metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/NotificationEventRequest.java (working copy) @@ -0,0 +1,486 @@ +/** + * Autogenerated by Thrift Compiler (0.9.0) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package org.apache.hadoop.hive.metastore.api; + +import org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; + +import org.apache.thrift.scheme.TupleScheme; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.protocol.TProtocolException; +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.TException; +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 NotificationEventRequest 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("NotificationEventRequest"); + + private static final org.apache.thrift.protocol.TField LAST_EVENT_FIELD_DESC = new org.apache.thrift.protocol.TField("lastEvent", org.apache.thrift.protocol.TType.I64, (short)1); + private static final org.apache.thrift.protocol.TField MAX_EVENTS_FIELD_DESC = new org.apache.thrift.protocol.TField("maxEvents", org.apache.thrift.protocol.TType.I32, (short)2); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new NotificationEventRequestStandardSchemeFactory()); + schemes.put(TupleScheme.class, new NotificationEventRequestTupleSchemeFactory()); + } + + private long lastEvent; // required + private int maxEvents; // optional + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { + LAST_EVENT((short)1, "lastEvent"), + MAX_EVENTS((short)2, "maxEvents"); + + 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: // LAST_EVENT + return LAST_EVENT; + case 2: // MAX_EVENTS + return MAX_EVENTS; + 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 + private static final int __LASTEVENT_ISSET_ID = 0; + private static final int __MAXEVENTS_ISSET_ID = 1; + private byte __isset_bitfield = 0; + private _Fields optionals[] = {_Fields.MAX_EVENTS}; + 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.LAST_EVENT, new org.apache.thrift.meta_data.FieldMetaData("lastEvent", org.apache.thrift.TFieldRequirementType.REQUIRED, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))); + tmpMap.put(_Fields.MAX_EVENTS, new org.apache.thrift.meta_data.FieldMetaData("maxEvents", org.apache.thrift.TFieldRequirementType.OPTIONAL, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(NotificationEventRequest.class, metaDataMap); + } + + public NotificationEventRequest() { + } + + public NotificationEventRequest( + long lastEvent) + { + this(); + this.lastEvent = lastEvent; + setLastEventIsSet(true); + } + + /** + * Performs a deep copy on other. + */ + public NotificationEventRequest(NotificationEventRequest other) { + __isset_bitfield = other.__isset_bitfield; + this.lastEvent = other.lastEvent; + this.maxEvents = other.maxEvents; + } + + public NotificationEventRequest deepCopy() { + return new NotificationEventRequest(this); + } + + @Override + public void clear() { + setLastEventIsSet(false); + this.lastEvent = 0; + setMaxEventsIsSet(false); + this.maxEvents = 0; + } + + public long getLastEvent() { + return this.lastEvent; + } + + public void setLastEvent(long lastEvent) { + this.lastEvent = lastEvent; + setLastEventIsSet(true); + } + + public void unsetLastEvent() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LASTEVENT_ISSET_ID); + } + + /** Returns true if field lastEvent is set (has been assigned a value) and false otherwise */ + public boolean isSetLastEvent() { + return EncodingUtils.testBit(__isset_bitfield, __LASTEVENT_ISSET_ID); + } + + public void setLastEventIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTEVENT_ISSET_ID, value); + } + + public int getMaxEvents() { + return this.maxEvents; + } + + public void setMaxEvents(int maxEvents) { + this.maxEvents = maxEvents; + setMaxEventsIsSet(true); + } + + public void unsetMaxEvents() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __MAXEVENTS_ISSET_ID); + } + + /** Returns true if field maxEvents is set (has been assigned a value) and false otherwise */ + public boolean isSetMaxEvents() { + return EncodingUtils.testBit(__isset_bitfield, __MAXEVENTS_ISSET_ID); + } + + public void setMaxEventsIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __MAXEVENTS_ISSET_ID, value); + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case LAST_EVENT: + if (value == null) { + unsetLastEvent(); + } else { + setLastEvent((Long)value); + } + break; + + case MAX_EVENTS: + if (value == null) { + unsetMaxEvents(); + } else { + setMaxEvents((Integer)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case LAST_EVENT: + return Long.valueOf(getLastEvent()); + + case MAX_EVENTS: + return Integer.valueOf(getMaxEvents()); + + } + 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 LAST_EVENT: + return isSetLastEvent(); + case MAX_EVENTS: + return isSetMaxEvents(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof NotificationEventRequest) + return this.equals((NotificationEventRequest)that); + return false; + } + + public boolean equals(NotificationEventRequest that) { + if (that == null) + return false; + + boolean this_present_lastEvent = true; + boolean that_present_lastEvent = true; + if (this_present_lastEvent || that_present_lastEvent) { + if (!(this_present_lastEvent && that_present_lastEvent)) + return false; + if (this.lastEvent != that.lastEvent) + return false; + } + + boolean this_present_maxEvents = true && this.isSetMaxEvents(); + boolean that_present_maxEvents = true && that.isSetMaxEvents(); + if (this_present_maxEvents || that_present_maxEvents) { + if (!(this_present_maxEvents && that_present_maxEvents)) + return false; + if (this.maxEvents != that.maxEvents) + return false; + } + + return true; + } + + @Override + public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_lastEvent = true; + builder.append(present_lastEvent); + if (present_lastEvent) + builder.append(lastEvent); + + boolean present_maxEvents = true && (isSetMaxEvents()); + builder.append(present_maxEvents); + if (present_maxEvents) + builder.append(maxEvents); + + return builder.toHashCode(); + } + + public int compareTo(NotificationEventRequest other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + NotificationEventRequest typedOther = (NotificationEventRequest)other; + + lastComparison = Boolean.valueOf(isSetLastEvent()).compareTo(typedOther.isSetLastEvent()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetLastEvent()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.lastEvent, typedOther.lastEvent); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetMaxEvents()).compareTo(typedOther.isSetMaxEvents()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetMaxEvents()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.maxEvents, typedOther.maxEvents); + 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 { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("NotificationEventRequest("); + boolean first = true; + + sb.append("lastEvent:"); + sb.append(this.lastEvent); + first = false; + if (isSetMaxEvents()) { + if (!first) sb.append(", "); + sb.append("maxEvents:"); + sb.append(this.maxEvents); + first = false; + } + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + if (!isSetLastEvent()) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'lastEvent' is unset! Struct:" + toString()); + } + + // check for sub-struct validity + } + + 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 { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + 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); + } + } + + private static class NotificationEventRequestStandardSchemeFactory implements SchemeFactory { + public NotificationEventRequestStandardScheme getScheme() { + return new NotificationEventRequestStandardScheme(); + } + } + + private static class NotificationEventRequestStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, NotificationEventRequest struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // LAST_EVENT + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.lastEvent = iprot.readI64(); + struct.setLastEventIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // MAX_EVENTS + if (schemeField.type == org.apache.thrift.protocol.TType.I32) { + struct.maxEvents = iprot.readI32(); + struct.setMaxEventsIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, NotificationEventRequest struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(LAST_EVENT_FIELD_DESC); + oprot.writeI64(struct.lastEvent); + oprot.writeFieldEnd(); + if (struct.isSetMaxEvents()) { + oprot.writeFieldBegin(MAX_EVENTS_FIELD_DESC); + oprot.writeI32(struct.maxEvents); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class NotificationEventRequestTupleSchemeFactory implements SchemeFactory { + public NotificationEventRequestTupleScheme getScheme() { + return new NotificationEventRequestTupleScheme(); + } + } + + private static class NotificationEventRequestTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, NotificationEventRequest struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + oprot.writeI64(struct.lastEvent); + BitSet optionals = new BitSet(); + if (struct.isSetMaxEvents()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetMaxEvents()) { + oprot.writeI32(struct.maxEvents); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, NotificationEventRequest struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + struct.lastEvent = iprot.readI64(); + struct.setLastEventIsSet(true); + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.maxEvents = iprot.readI32(); + struct.setMaxEventsIsSet(true); + } + } + } + +} + Index: metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/NotificationEventResponse.java =================================================================== --- metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/NotificationEventResponse.java (revision 0) +++ metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/NotificationEventResponse.java (working copy) @@ -0,0 +1,439 @@ +/** + * Autogenerated by Thrift Compiler (0.9.0) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package org.apache.hadoop.hive.metastore.api; + +import org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; + +import org.apache.thrift.scheme.TupleScheme; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.protocol.TProtocolException; +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.TException; +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 NotificationEventResponse 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("NotificationEventResponse"); + + private static final org.apache.thrift.protocol.TField EVENTS_FIELD_DESC = new org.apache.thrift.protocol.TField("events", org.apache.thrift.protocol.TType.LIST, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new NotificationEventResponseStandardSchemeFactory()); + schemes.put(TupleScheme.class, new NotificationEventResponseTupleSchemeFactory()); + } + + private List events; // 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 { + EVENTS((short)1, "events"); + + 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: // EVENTS + return EVENTS; + 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.EVENTS, new org.apache.thrift.meta_data.FieldMetaData("events", org.apache.thrift.TFieldRequirementType.REQUIRED, + 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, NotificationEvent.class)))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(NotificationEventResponse.class, metaDataMap); + } + + public NotificationEventResponse() { + } + + public NotificationEventResponse( + List events) + { + this(); + this.events = events; + } + + /** + * Performs a deep copy on other. + */ + public NotificationEventResponse(NotificationEventResponse other) { + if (other.isSetEvents()) { + List __this__events = new ArrayList(); + for (NotificationEvent other_element : other.events) { + __this__events.add(new NotificationEvent(other_element)); + } + this.events = __this__events; + } + } + + public NotificationEventResponse deepCopy() { + return new NotificationEventResponse(this); + } + + @Override + public void clear() { + this.events = null; + } + + public int getEventsSize() { + return (this.events == null) ? 0 : this.events.size(); + } + + public java.util.Iterator getEventsIterator() { + return (this.events == null) ? null : this.events.iterator(); + } + + public void addToEvents(NotificationEvent elem) { + if (this.events == null) { + this.events = new ArrayList(); + } + this.events.add(elem); + } + + public List getEvents() { + return this.events; + } + + public void setEvents(List events) { + this.events = events; + } + + public void unsetEvents() { + this.events = null; + } + + /** Returns true if field events is set (has been assigned a value) and false otherwise */ + public boolean isSetEvents() { + return this.events != null; + } + + public void setEventsIsSet(boolean value) { + if (!value) { + this.events = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case EVENTS: + if (value == null) { + unsetEvents(); + } else { + setEvents((List)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case EVENTS: + return getEvents(); + + } + 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 EVENTS: + return isSetEvents(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof NotificationEventResponse) + return this.equals((NotificationEventResponse)that); + return false; + } + + public boolean equals(NotificationEventResponse that) { + if (that == null) + return false; + + boolean this_present_events = true && this.isSetEvents(); + boolean that_present_events = true && that.isSetEvents(); + if (this_present_events || that_present_events) { + if (!(this_present_events && that_present_events)) + return false; + if (!this.events.equals(that.events)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_events = true && (isSetEvents()); + builder.append(present_events); + if (present_events) + builder.append(events); + + return builder.toHashCode(); + } + + public int compareTo(NotificationEventResponse other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + NotificationEventResponse typedOther = (NotificationEventResponse)other; + + lastComparison = Boolean.valueOf(isSetEvents()).compareTo(typedOther.isSetEvents()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetEvents()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.events, typedOther.events); + 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 { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("NotificationEventResponse("); + boolean first = true; + + sb.append("events:"); + if (this.events == null) { + sb.append("null"); + } else { + sb.append(this.events); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + if (!isSetEvents()) { + throw new org.apache.thrift.protocol.TProtocolException("Required field 'events' is unset! Struct:" + toString()); + } + + // check for sub-struct validity + } + + 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); + } + } + + private static class NotificationEventResponseStandardSchemeFactory implements SchemeFactory { + public NotificationEventResponseStandardScheme getScheme() { + return new NotificationEventResponseStandardScheme(); + } + } + + private static class NotificationEventResponseStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, NotificationEventResponse struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // EVENTS + if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { + { + org.apache.thrift.protocol.TList _list492 = iprot.readListBegin(); + struct.events = new ArrayList(_list492.size); + for (int _i493 = 0; _i493 < _list492.size; ++_i493) + { + NotificationEvent _elem494; // required + _elem494 = new NotificationEvent(); + _elem494.read(iprot); + struct.events.add(_elem494); + } + iprot.readListEnd(); + } + struct.setEventsIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, NotificationEventResponse struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.events != null) { + oprot.writeFieldBegin(EVENTS_FIELD_DESC); + { + oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.events.size())); + for (NotificationEvent _iter495 : struct.events) + { + _iter495.write(oprot); + } + oprot.writeListEnd(); + } + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class NotificationEventResponseTupleSchemeFactory implements SchemeFactory { + public NotificationEventResponseTupleScheme getScheme() { + return new NotificationEventResponseTupleScheme(); + } + } + + private static class NotificationEventResponseTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, NotificationEventResponse struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + { + oprot.writeI32(struct.events.size()); + for (NotificationEvent _iter496 : struct.events) + { + _iter496.write(oprot); + } + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, NotificationEventResponse struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + { + org.apache.thrift.protocol.TList _list497 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.events = new ArrayList(_list497.size); + for (int _i498 = 0; _i498 < _list497.size; ++_i498) + { + NotificationEvent _elem499; // required + _elem499 = new NotificationEvent(); + _elem499.read(iprot); + struct.events.add(_elem499); + } + } + struct.setEventsIsSet(true); + } + } + +} + 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 1650429) +++ metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java (working copy) @@ -272,6 +272,10 @@ public ShowCompactResponse show_compact(ShowCompactRequest rqst) throws org.apache.thrift.TException; + public NotificationEventResponse getNextNotification(NotificationEventRequest rqst) throws org.apache.thrift.TException; + + public CurrentNotificationEventId getCurrentNotificationEventId() throws org.apache.thrift.TException; + } public interface AsyncIface extends com.facebook.fb303.FacebookService .AsyncIface { @@ -510,6 +514,10 @@ public void show_compact(ShowCompactRequest rqst, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + public void getNextNotification(NotificationEventRequest rqst, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + + public void getCurrentNotificationEventId(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + } public static class Client extends com.facebook.fb303.FacebookService.Client implements Iface { @@ -4000,6 +4008,51 @@ throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "show_compact failed: unknown result"); } + public NotificationEventResponse getNextNotification(NotificationEventRequest rqst) throws org.apache.thrift.TException + { + send_getNextNotification(rqst); + return recv_getNextNotification(); + } + + public void send_getNextNotification(NotificationEventRequest rqst) throws org.apache.thrift.TException + { + getNextNotification_args args = new getNextNotification_args(); + args.setRqst(rqst); + sendBase("getNextNotification", args); + } + + public NotificationEventResponse recv_getNextNotification() throws org.apache.thrift.TException + { + getNextNotification_result result = new getNextNotification_result(); + receiveBase(result, "getNextNotification"); + if (result.isSetSuccess()) { + return result.success; + } + throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getNextNotification failed: unknown result"); + } + + public CurrentNotificationEventId getCurrentNotificationEventId() throws org.apache.thrift.TException + { + send_getCurrentNotificationEventId(); + return recv_getCurrentNotificationEventId(); + } + + public void send_getCurrentNotificationEventId() throws org.apache.thrift.TException + { + getCurrentNotificationEventId_args args = new getCurrentNotificationEventId_args(); + sendBase("getCurrentNotificationEventId", args); + } + + public CurrentNotificationEventId recv_getCurrentNotificationEventId() throws org.apache.thrift.TException + { + getCurrentNotificationEventId_result result = new getCurrentNotificationEventId_result(); + receiveBase(result, "getCurrentNotificationEventId"); + if (result.isSetSuccess()) { + return result.success; + } + throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getCurrentNotificationEventId failed: unknown result"); + } + } public static class AsyncClient extends com.facebook.fb303.FacebookService.AsyncClient implements AsyncIface { public static class Factory implements org.apache.thrift.async.TAsyncClientFactory { @@ -8203,6 +8256,67 @@ } } + public void getNextNotification(NotificationEventRequest rqst, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { + checkReady(); + getNextNotification_call method_call = new getNextNotification_call(rqst, resultHandler, this, ___protocolFactory, ___transport); + this.___currentMethod = method_call; + ___manager.call(method_call); + } + + public static class getNextNotification_call extends org.apache.thrift.async.TAsyncMethodCall { + private NotificationEventRequest rqst; + public getNextNotification_call(NotificationEventRequest rqst, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { + super(client, protocolFactory, transport, resultHandler, false); + this.rqst = rqst; + } + + public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { + prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getNextNotification", org.apache.thrift.protocol.TMessageType.CALL, 0)); + getNextNotification_args args = new getNextNotification_args(); + args.setRqst(rqst); + args.write(prot); + prot.writeMessageEnd(); + } + + public NotificationEventResponse getResult() throws org.apache.thrift.TException { + if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { + throw new IllegalStateException("Method call not finished!"); + } + org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); + org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); + return (new Client(prot)).recv_getNextNotification(); + } + } + + public void getCurrentNotificationEventId(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException { + checkReady(); + getCurrentNotificationEventId_call method_call = new getCurrentNotificationEventId_call(resultHandler, this, ___protocolFactory, ___transport); + this.___currentMethod = method_call; + ___manager.call(method_call); + } + + public static class getCurrentNotificationEventId_call extends org.apache.thrift.async.TAsyncMethodCall { + public getCurrentNotificationEventId_call(org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { + super(client, protocolFactory, transport, resultHandler, false); + } + + public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { + prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getCurrentNotificationEventId", org.apache.thrift.protocol.TMessageType.CALL, 0)); + getCurrentNotificationEventId_args args = new getCurrentNotificationEventId_args(); + args.write(prot); + prot.writeMessageEnd(); + } + + public CurrentNotificationEventId getResult() throws org.apache.thrift.TException { + if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { + throw new IllegalStateException("Method call not finished!"); + } + org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array()); + org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport); + return (new Client(prot)).recv_getCurrentNotificationEventId(); + } + } + } public static class Processor extends com.facebook.fb303.FacebookService.Processor implements org.apache.thrift.TProcessor { @@ -8333,6 +8447,8 @@ processMap.put("heartbeat_txn_range", new heartbeat_txn_range()); processMap.put("compact", new compact()); processMap.put("show_compact", new show_compact()); + processMap.put("getNextNotification", new getNextNotification()); + processMap.put("getCurrentNotificationEventId", new getCurrentNotificationEventId()); return processMap; } @@ -11391,6 +11507,46 @@ } } + public static class getNextNotification extends org.apache.thrift.ProcessFunction { + public getNextNotification() { + super("getNextNotification"); + } + + public getNextNotification_args getEmptyArgsInstance() { + return new getNextNotification_args(); + } + + protected boolean isOneway() { + return false; + } + + public getNextNotification_result getResult(I iface, getNextNotification_args args) throws org.apache.thrift.TException { + getNextNotification_result result = new getNextNotification_result(); + result.success = iface.getNextNotification(args.rqst); + return result; + } + } + + public static class getCurrentNotificationEventId extends org.apache.thrift.ProcessFunction { + public getCurrentNotificationEventId() { + super("getCurrentNotificationEventId"); + } + + public getCurrentNotificationEventId_args getEmptyArgsInstance() { + return new getCurrentNotificationEventId_args(); + } + + protected boolean isOneway() { + return false; + } + + public getCurrentNotificationEventId_result getResult(I iface, getCurrentNotificationEventId_args args) throws org.apache.thrift.TException { + getCurrentNotificationEventId_result result = new getCurrentNotificationEventId_result(); + result.success = iface.getCurrentNotificationEventId(); + return result; + } + } + } public static class getMetaConf_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { @@ -16789,13 +16945,13 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list492 = iprot.readListBegin(); - struct.success = new ArrayList(_list492.size); - for (int _i493 = 0; _i493 < _list492.size; ++_i493) + org.apache.thrift.protocol.TList _list500 = iprot.readListBegin(); + struct.success = new ArrayList(_list500.size); + for (int _i501 = 0; _i501 < _list500.size; ++_i501) { - String _elem494; // required - _elem494 = iprot.readString(); - struct.success.add(_elem494); + String _elem502; // required + _elem502 = iprot.readString(); + struct.success.add(_elem502); } iprot.readListEnd(); } @@ -16830,9 +16986,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size())); - for (String _iter495 : struct.success) + for (String _iter503 : struct.success) { - oprot.writeString(_iter495); + oprot.writeString(_iter503); } oprot.writeListEnd(); } @@ -16871,9 +17027,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (String _iter496 : struct.success) + for (String _iter504 : struct.success) { - oprot.writeString(_iter496); + oprot.writeString(_iter504); } } } @@ -16888,13 +17044,13 @@ BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list497 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.success = new ArrayList(_list497.size); - for (int _i498 = 0; _i498 < _list497.size; ++_i498) + org.apache.thrift.protocol.TList _list505 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.success = new ArrayList(_list505.size); + for (int _i506 = 0; _i506 < _list505.size; ++_i506) { - String _elem499; // required - _elem499 = iprot.readString(); - struct.success.add(_elem499); + String _elem507; // required + _elem507 = iprot.readString(); + struct.success.add(_elem507); } } struct.setSuccessIsSet(true); @@ -17551,13 +17707,13 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list500 = iprot.readListBegin(); - struct.success = new ArrayList(_list500.size); - for (int _i501 = 0; _i501 < _list500.size; ++_i501) + org.apache.thrift.protocol.TList _list508 = iprot.readListBegin(); + struct.success = new ArrayList(_list508.size); + for (int _i509 = 0; _i509 < _list508.size; ++_i509) { - String _elem502; // required - _elem502 = iprot.readString(); - struct.success.add(_elem502); + String _elem510; // required + _elem510 = iprot.readString(); + struct.success.add(_elem510); } iprot.readListEnd(); } @@ -17592,9 +17748,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size())); - for (String _iter503 : struct.success) + for (String _iter511 : struct.success) { - oprot.writeString(_iter503); + oprot.writeString(_iter511); } oprot.writeListEnd(); } @@ -17633,9 +17789,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (String _iter504 : struct.success) + for (String _iter512 : struct.success) { - oprot.writeString(_iter504); + oprot.writeString(_iter512); } } } @@ -17650,13 +17806,13 @@ BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list505 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.success = new ArrayList(_list505.size); - for (int _i506 = 0; _i506 < _list505.size; ++_i506) + org.apache.thrift.protocol.TList _list513 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.success = new ArrayList(_list513.size); + for (int _i514 = 0; _i514 < _list513.size; ++_i514) { - String _elem507; // required - _elem507 = iprot.readString(); - struct.success.add(_elem507); + String _elem515; // required + _elem515 = iprot.readString(); + struct.success.add(_elem515); } } struct.setSuccessIsSet(true); @@ -22263,16 +22419,16 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { { - org.apache.thrift.protocol.TMap _map508 = iprot.readMapBegin(); - struct.success = new HashMap(2*_map508.size); - for (int _i509 = 0; _i509 < _map508.size; ++_i509) + org.apache.thrift.protocol.TMap _map516 = iprot.readMapBegin(); + struct.success = new HashMap(2*_map516.size); + for (int _i517 = 0; _i517 < _map516.size; ++_i517) { - String _key510; // required - Type _val511; // required - _key510 = iprot.readString(); - _val511 = new Type(); - _val511.read(iprot); - struct.success.put(_key510, _val511); + String _key518; // required + Type _val519; // required + _key518 = iprot.readString(); + _val519 = new Type(); + _val519.read(iprot); + struct.success.put(_key518, _val519); } iprot.readMapEnd(); } @@ -22307,10 +22463,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, struct.success.size())); - for (Map.Entry _iter512 : struct.success.entrySet()) + for (Map.Entry _iter520 : struct.success.entrySet()) { - oprot.writeString(_iter512.getKey()); - _iter512.getValue().write(oprot); + oprot.writeString(_iter520.getKey()); + _iter520.getValue().write(oprot); } oprot.writeMapEnd(); } @@ -22349,10 +22505,10 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (Map.Entry _iter513 : struct.success.entrySet()) + for (Map.Entry _iter521 : struct.success.entrySet()) { - oprot.writeString(_iter513.getKey()); - _iter513.getValue().write(oprot); + oprot.writeString(_iter521.getKey()); + _iter521.getValue().write(oprot); } } } @@ -22367,16 +22523,16 @@ BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { { - org.apache.thrift.protocol.TMap _map514 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.success = new HashMap(2*_map514.size); - for (int _i515 = 0; _i515 < _map514.size; ++_i515) + org.apache.thrift.protocol.TMap _map522 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.success = new HashMap(2*_map522.size); + for (int _i523 = 0; _i523 < _map522.size; ++_i523) { - String _key516; // required - Type _val517; // required - _key516 = iprot.readString(); - _val517 = new Type(); - _val517.read(iprot); - struct.success.put(_key516, _val517); + String _key524; // required + Type _val525; // required + _key524 = iprot.readString(); + _val525 = new Type(); + _val525.read(iprot); + struct.success.put(_key524, _val525); } } struct.setSuccessIsSet(true); @@ -23411,14 +23567,14 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list518 = iprot.readListBegin(); - struct.success = new ArrayList(_list518.size); - for (int _i519 = 0; _i519 < _list518.size; ++_i519) + org.apache.thrift.protocol.TList _list526 = iprot.readListBegin(); + struct.success = new ArrayList(_list526.size); + for (int _i527 = 0; _i527 < _list526.size; ++_i527) { - FieldSchema _elem520; // required - _elem520 = new FieldSchema(); - _elem520.read(iprot); - struct.success.add(_elem520); + FieldSchema _elem528; // required + _elem528 = new FieldSchema(); + _elem528.read(iprot); + struct.success.add(_elem528); } iprot.readListEnd(); } @@ -23471,9 +23627,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size())); - for (FieldSchema _iter521 : struct.success) + for (FieldSchema _iter529 : struct.success) { - _iter521.write(oprot); + _iter529.write(oprot); } oprot.writeListEnd(); } @@ -23528,9 +23684,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (FieldSchema _iter522 : struct.success) + for (FieldSchema _iter530 : struct.success) { - _iter522.write(oprot); + _iter530.write(oprot); } } } @@ -23551,14 +23707,14 @@ BitSet incoming = iprot.readBitSet(4); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list523 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.success = new ArrayList(_list523.size); - for (int _i524 = 0; _i524 < _list523.size; ++_i524) + org.apache.thrift.protocol.TList _list531 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.success = new ArrayList(_list531.size); + for (int _i532 = 0; _i532 < _list531.size; ++_i532) { - FieldSchema _elem525; // required - _elem525 = new FieldSchema(); - _elem525.read(iprot); - struct.success.add(_elem525); + FieldSchema _elem533; // required + _elem533 = new FieldSchema(); + _elem533.read(iprot); + struct.success.add(_elem533); } } struct.setSuccessIsSet(true); @@ -24603,14 +24759,14 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list526 = iprot.readListBegin(); - struct.success = new ArrayList(_list526.size); - for (int _i527 = 0; _i527 < _list526.size; ++_i527) + org.apache.thrift.protocol.TList _list534 = iprot.readListBegin(); + struct.success = new ArrayList(_list534.size); + for (int _i535 = 0; _i535 < _list534.size; ++_i535) { - FieldSchema _elem528; // required - _elem528 = new FieldSchema(); - _elem528.read(iprot); - struct.success.add(_elem528); + FieldSchema _elem536; // required + _elem536 = new FieldSchema(); + _elem536.read(iprot); + struct.success.add(_elem536); } iprot.readListEnd(); } @@ -24663,9 +24819,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size())); - for (FieldSchema _iter529 : struct.success) + for (FieldSchema _iter537 : struct.success) { - _iter529.write(oprot); + _iter537.write(oprot); } oprot.writeListEnd(); } @@ -24720,9 +24876,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (FieldSchema _iter530 : struct.success) + for (FieldSchema _iter538 : struct.success) { - _iter530.write(oprot); + _iter538.write(oprot); } } } @@ -24743,14 +24899,14 @@ BitSet incoming = iprot.readBitSet(4); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list531 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.success = new ArrayList(_list531.size); - for (int _i532 = 0; _i532 < _list531.size; ++_i532) + org.apache.thrift.protocol.TList _list539 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.success = new ArrayList(_list539.size); + for (int _i540 = 0; _i540 < _list539.size; ++_i540) { - FieldSchema _elem533; // required - _elem533 = new FieldSchema(); - _elem533.read(iprot); - struct.success.add(_elem533); + FieldSchema _elem541; // required + _elem541 = new FieldSchema(); + _elem541.read(iprot); + struct.success.add(_elem541); } } struct.setSuccessIsSet(true); @@ -29993,13 +30149,13 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list534 = iprot.readListBegin(); - struct.success = new ArrayList(_list534.size); - for (int _i535 = 0; _i535 < _list534.size; ++_i535) + org.apache.thrift.protocol.TList _list542 = iprot.readListBegin(); + struct.success = new ArrayList(_list542.size); + for (int _i543 = 0; _i543 < _list542.size; ++_i543) { - String _elem536; // required - _elem536 = iprot.readString(); - struct.success.add(_elem536); + String _elem544; // required + _elem544 = iprot.readString(); + struct.success.add(_elem544); } iprot.readListEnd(); } @@ -30034,9 +30190,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size())); - for (String _iter537 : struct.success) + for (String _iter545 : struct.success) { - oprot.writeString(_iter537); + oprot.writeString(_iter545); } oprot.writeListEnd(); } @@ -30075,9 +30231,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (String _iter538 : struct.success) + for (String _iter546 : struct.success) { - oprot.writeString(_iter538); + oprot.writeString(_iter546); } } } @@ -30092,13 +30248,13 @@ BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list539 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.success = new ArrayList(_list539.size); - for (int _i540 = 0; _i540 < _list539.size; ++_i540) + org.apache.thrift.protocol.TList _list547 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.success = new ArrayList(_list547.size); + for (int _i548 = 0; _i548 < _list547.size; ++_i548) { - String _elem541; // required - _elem541 = iprot.readString(); - struct.success.add(_elem541); + String _elem549; // required + _elem549 = iprot.readString(); + struct.success.add(_elem549); } } struct.setSuccessIsSet(true); @@ -30867,13 +31023,13 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list542 = iprot.readListBegin(); - struct.success = new ArrayList(_list542.size); - for (int _i543 = 0; _i543 < _list542.size; ++_i543) + org.apache.thrift.protocol.TList _list550 = iprot.readListBegin(); + struct.success = new ArrayList(_list550.size); + for (int _i551 = 0; _i551 < _list550.size; ++_i551) { - String _elem544; // required - _elem544 = iprot.readString(); - struct.success.add(_elem544); + String _elem552; // required + _elem552 = iprot.readString(); + struct.success.add(_elem552); } iprot.readListEnd(); } @@ -30908,9 +31064,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size())); - for (String _iter545 : struct.success) + for (String _iter553 : struct.success) { - oprot.writeString(_iter545); + oprot.writeString(_iter553); } oprot.writeListEnd(); } @@ -30949,9 +31105,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (String _iter546 : struct.success) + for (String _iter554 : struct.success) { - oprot.writeString(_iter546); + oprot.writeString(_iter554); } } } @@ -30966,13 +31122,13 @@ BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list547 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.success = new ArrayList(_list547.size); - for (int _i548 = 0; _i548 < _list547.size; ++_i548) + org.apache.thrift.protocol.TList _list555 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.success = new ArrayList(_list555.size); + for (int _i556 = 0; _i556 < _list555.size; ++_i556) { - String _elem549; // required - _elem549 = iprot.readString(); - struct.success.add(_elem549); + String _elem557; // required + _elem557 = iprot.readString(); + struct.success.add(_elem557); } } struct.setSuccessIsSet(true); @@ -32428,13 +32584,13 @@ case 2: // TBL_NAMES if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list550 = iprot.readListBegin(); - struct.tbl_names = new ArrayList(_list550.size); - for (int _i551 = 0; _i551 < _list550.size; ++_i551) + org.apache.thrift.protocol.TList _list558 = iprot.readListBegin(); + struct.tbl_names = new ArrayList(_list558.size); + for (int _i559 = 0; _i559 < _list558.size; ++_i559) { - String _elem552; // required - _elem552 = iprot.readString(); - struct.tbl_names.add(_elem552); + String _elem560; // required + _elem560 = iprot.readString(); + struct.tbl_names.add(_elem560); } iprot.readListEnd(); } @@ -32465,9 +32621,9 @@ oprot.writeFieldBegin(TBL_NAMES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.tbl_names.size())); - for (String _iter553 : struct.tbl_names) + for (String _iter561 : struct.tbl_names) { - oprot.writeString(_iter553); + oprot.writeString(_iter561); } oprot.writeListEnd(); } @@ -32504,9 +32660,9 @@ if (struct.isSetTbl_names()) { { oprot.writeI32(struct.tbl_names.size()); - for (String _iter554 : struct.tbl_names) + for (String _iter562 : struct.tbl_names) { - oprot.writeString(_iter554); + oprot.writeString(_iter562); } } } @@ -32522,13 +32678,13 @@ } if (incoming.get(1)) { { - org.apache.thrift.protocol.TList _list555 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.tbl_names = new ArrayList(_list555.size); - for (int _i556 = 0; _i556 < _list555.size; ++_i556) + org.apache.thrift.protocol.TList _list563 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.tbl_names = new ArrayList(_list563.size); + for (int _i564 = 0; _i564 < _list563.size; ++_i564) { - String _elem557; // required - _elem557 = iprot.readString(); - struct.tbl_names.add(_elem557); + String _elem565; // required + _elem565 = iprot.readString(); + struct.tbl_names.add(_elem565); } } struct.setTbl_namesIsSet(true); @@ -33096,14 +33252,14 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list558 = iprot.readListBegin(); - struct.success = new ArrayList
(_list558.size); - for (int _i559 = 0; _i559 < _list558.size; ++_i559) + org.apache.thrift.protocol.TList _list566 = iprot.readListBegin(); + struct.success = new ArrayList
(_list566.size); + for (int _i567 = 0; _i567 < _list566.size; ++_i567) { - Table _elem560; // required - _elem560 = new Table(); - _elem560.read(iprot); - struct.success.add(_elem560); + Table _elem568; // required + _elem568 = new Table(); + _elem568.read(iprot); + struct.success.add(_elem568); } iprot.readListEnd(); } @@ -33156,9 +33312,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size())); - for (Table _iter561 : struct.success) + for (Table _iter569 : struct.success) { - _iter561.write(oprot); + _iter569.write(oprot); } oprot.writeListEnd(); } @@ -33213,9 +33369,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (Table _iter562 : struct.success) + for (Table _iter570 : struct.success) { - _iter562.write(oprot); + _iter570.write(oprot); } } } @@ -33236,14 +33392,14 @@ BitSet incoming = iprot.readBitSet(4); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list563 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.success = new ArrayList
(_list563.size); - for (int _i564 = 0; _i564 < _list563.size; ++_i564) + org.apache.thrift.protocol.TList _list571 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.success = new ArrayList
(_list571.size); + for (int _i572 = 0; _i572 < _list571.size; ++_i572) { - Table _elem565; // required - _elem565 = new Table(); - _elem565.read(iprot); - struct.success.add(_elem565); + Table _elem573; // required + _elem573 = new Table(); + _elem573.read(iprot); + struct.success.add(_elem573); } } struct.setSuccessIsSet(true); @@ -34392,13 +34548,13 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list566 = iprot.readListBegin(); - struct.success = new ArrayList(_list566.size); - for (int _i567 = 0; _i567 < _list566.size; ++_i567) + org.apache.thrift.protocol.TList _list574 = iprot.readListBegin(); + struct.success = new ArrayList(_list574.size); + for (int _i575 = 0; _i575 < _list574.size; ++_i575) { - String _elem568; // required - _elem568 = iprot.readString(); - struct.success.add(_elem568); + String _elem576; // required + _elem576 = iprot.readString(); + struct.success.add(_elem576); } iprot.readListEnd(); } @@ -34451,9 +34607,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size())); - for (String _iter569 : struct.success) + for (String _iter577 : struct.success) { - oprot.writeString(_iter569); + oprot.writeString(_iter577); } oprot.writeListEnd(); } @@ -34508,9 +34664,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (String _iter570 : struct.success) + for (String _iter578 : struct.success) { - oprot.writeString(_iter570); + oprot.writeString(_iter578); } } } @@ -34531,13 +34687,13 @@ BitSet incoming = iprot.readBitSet(4); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list571 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.success = new ArrayList(_list571.size); - for (int _i572 = 0; _i572 < _list571.size; ++_i572) + org.apache.thrift.protocol.TList _list579 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.success = new ArrayList(_list579.size); + for (int _i580 = 0; _i580 < _list579.size; ++_i580) { - String _elem573; // required - _elem573 = iprot.readString(); - struct.success.add(_elem573); + String _elem581; // required + _elem581 = iprot.readString(); + struct.success.add(_elem581); } } struct.setSuccessIsSet(true); @@ -40396,14 +40552,14 @@ case 1: // NEW_PARTS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list574 = iprot.readListBegin(); - struct.new_parts = new ArrayList(_list574.size); - for (int _i575 = 0; _i575 < _list574.size; ++_i575) + org.apache.thrift.protocol.TList _list582 = iprot.readListBegin(); + struct.new_parts = new ArrayList(_list582.size); + for (int _i583 = 0; _i583 < _list582.size; ++_i583) { - Partition _elem576; // required - _elem576 = new Partition(); - _elem576.read(iprot); - struct.new_parts.add(_elem576); + Partition _elem584; // required + _elem584 = new Partition(); + _elem584.read(iprot); + struct.new_parts.add(_elem584); } iprot.readListEnd(); } @@ -40429,9 +40585,9 @@ oprot.writeFieldBegin(NEW_PARTS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.new_parts.size())); - for (Partition _iter577 : struct.new_parts) + for (Partition _iter585 : struct.new_parts) { - _iter577.write(oprot); + _iter585.write(oprot); } oprot.writeListEnd(); } @@ -40462,9 +40618,9 @@ if (struct.isSetNew_parts()) { { oprot.writeI32(struct.new_parts.size()); - for (Partition _iter578 : struct.new_parts) + for (Partition _iter586 : struct.new_parts) { - _iter578.write(oprot); + _iter586.write(oprot); } } } @@ -40476,14 +40632,14 @@ BitSet incoming = iprot.readBitSet(1); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list579 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.new_parts = new ArrayList(_list579.size); - for (int _i580 = 0; _i580 < _list579.size; ++_i580) + org.apache.thrift.protocol.TList _list587 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.new_parts = new ArrayList(_list587.size); + for (int _i588 = 0; _i588 < _list587.size; ++_i588) { - Partition _elem581; // required - _elem581 = new Partition(); - _elem581.read(iprot); - struct.new_parts.add(_elem581); + Partition _elem589; // required + _elem589 = new Partition(); + _elem589.read(iprot); + struct.new_parts.add(_elem589); } } struct.setNew_partsIsSet(true); @@ -41484,14 +41640,14 @@ case 1: // NEW_PARTS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list582 = iprot.readListBegin(); - struct.new_parts = new ArrayList(_list582.size); - for (int _i583 = 0; _i583 < _list582.size; ++_i583) + org.apache.thrift.protocol.TList _list590 = iprot.readListBegin(); + struct.new_parts = new ArrayList(_list590.size); + for (int _i591 = 0; _i591 < _list590.size; ++_i591) { - PartitionSpec _elem584; // required - _elem584 = new PartitionSpec(); - _elem584.read(iprot); - struct.new_parts.add(_elem584); + PartitionSpec _elem592; // required + _elem592 = new PartitionSpec(); + _elem592.read(iprot); + struct.new_parts.add(_elem592); } iprot.readListEnd(); } @@ -41517,9 +41673,9 @@ oprot.writeFieldBegin(NEW_PARTS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.new_parts.size())); - for (PartitionSpec _iter585 : struct.new_parts) + for (PartitionSpec _iter593 : struct.new_parts) { - _iter585.write(oprot); + _iter593.write(oprot); } oprot.writeListEnd(); } @@ -41550,9 +41706,9 @@ if (struct.isSetNew_parts()) { { oprot.writeI32(struct.new_parts.size()); - for (PartitionSpec _iter586 : struct.new_parts) + for (PartitionSpec _iter594 : struct.new_parts) { - _iter586.write(oprot); + _iter594.write(oprot); } } } @@ -41564,14 +41720,14 @@ BitSet incoming = iprot.readBitSet(1); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list587 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.new_parts = new ArrayList(_list587.size); - for (int _i588 = 0; _i588 < _list587.size; ++_i588) + org.apache.thrift.protocol.TList _list595 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.new_parts = new ArrayList(_list595.size); + for (int _i596 = 0; _i596 < _list595.size; ++_i596) { - PartitionSpec _elem589; // required - _elem589 = new PartitionSpec(); - _elem589.read(iprot); - struct.new_parts.add(_elem589); + PartitionSpec _elem597; // required + _elem597 = new PartitionSpec(); + _elem597.read(iprot); + struct.new_parts.add(_elem597); } } struct.setNew_partsIsSet(true); @@ -42750,13 +42906,13 @@ case 3: // PART_VALS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list590 = iprot.readListBegin(); - struct.part_vals = new ArrayList(_list590.size); - for (int _i591 = 0; _i591 < _list590.size; ++_i591) + org.apache.thrift.protocol.TList _list598 = iprot.readListBegin(); + struct.part_vals = new ArrayList(_list598.size); + for (int _i599 = 0; _i599 < _list598.size; ++_i599) { - String _elem592; // required - _elem592 = iprot.readString(); - struct.part_vals.add(_elem592); + String _elem600; // required + _elem600 = iprot.readString(); + struct.part_vals.add(_elem600); } iprot.readListEnd(); } @@ -42792,9 +42948,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size())); - for (String _iter593 : struct.part_vals) + for (String _iter601 : struct.part_vals) { - oprot.writeString(_iter593); + oprot.writeString(_iter601); } oprot.writeListEnd(); } @@ -42837,9 +42993,9 @@ if (struct.isSetPart_vals()) { { oprot.writeI32(struct.part_vals.size()); - for (String _iter594 : struct.part_vals) + for (String _iter602 : struct.part_vals) { - oprot.writeString(_iter594); + oprot.writeString(_iter602); } } } @@ -42859,13 +43015,13 @@ } if (incoming.get(2)) { { - org.apache.thrift.protocol.TList _list595 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.part_vals = new ArrayList(_list595.size); - for (int _i596 = 0; _i596 < _list595.size; ++_i596) + org.apache.thrift.protocol.TList _list603 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.part_vals = new ArrayList(_list603.size); + for (int _i604 = 0; _i604 < _list603.size; ++_i604) { - String _elem597; // required - _elem597 = iprot.readString(); - struct.part_vals.add(_elem597); + String _elem605; // required + _elem605 = iprot.readString(); + struct.part_vals.add(_elem605); } } struct.setPart_valsIsSet(true); @@ -45177,13 +45333,13 @@ case 3: // PART_VALS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list598 = iprot.readListBegin(); - struct.part_vals = new ArrayList(_list598.size); - for (int _i599 = 0; _i599 < _list598.size; ++_i599) + org.apache.thrift.protocol.TList _list606 = iprot.readListBegin(); + struct.part_vals = new ArrayList(_list606.size); + for (int _i607 = 0; _i607 < _list606.size; ++_i607) { - String _elem600; // required - _elem600 = iprot.readString(); - struct.part_vals.add(_elem600); + String _elem608; // required + _elem608 = iprot.readString(); + struct.part_vals.add(_elem608); } iprot.readListEnd(); } @@ -45228,9 +45384,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size())); - for (String _iter601 : struct.part_vals) + for (String _iter609 : struct.part_vals) { - oprot.writeString(_iter601); + oprot.writeString(_iter609); } oprot.writeListEnd(); } @@ -45281,9 +45437,9 @@ if (struct.isSetPart_vals()) { { oprot.writeI32(struct.part_vals.size()); - for (String _iter602 : struct.part_vals) + for (String _iter610 : struct.part_vals) { - oprot.writeString(_iter602); + oprot.writeString(_iter610); } } } @@ -45306,13 +45462,13 @@ } if (incoming.get(2)) { { - org.apache.thrift.protocol.TList _list603 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.part_vals = new ArrayList(_list603.size); - for (int _i604 = 0; _i604 < _list603.size; ++_i604) + org.apache.thrift.protocol.TList _list611 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.part_vals = new ArrayList(_list611.size); + for (int _i612 = 0; _i612 < _list611.size; ++_i612) { - String _elem605; // required - _elem605 = iprot.readString(); - struct.part_vals.add(_elem605); + String _elem613; // required + _elem613 = iprot.readString(); + struct.part_vals.add(_elem613); } } struct.setPart_valsIsSet(true); @@ -49185,13 +49341,13 @@ case 3: // PART_VALS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list606 = iprot.readListBegin(); - struct.part_vals = new ArrayList(_list606.size); - for (int _i607 = 0; _i607 < _list606.size; ++_i607) + org.apache.thrift.protocol.TList _list614 = iprot.readListBegin(); + struct.part_vals = new ArrayList(_list614.size); + for (int _i615 = 0; _i615 < _list614.size; ++_i615) { - String _elem608; // required - _elem608 = iprot.readString(); - struct.part_vals.add(_elem608); + String _elem616; // required + _elem616 = iprot.readString(); + struct.part_vals.add(_elem616); } iprot.readListEnd(); } @@ -49235,9 +49391,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size())); - for (String _iter609 : struct.part_vals) + for (String _iter617 : struct.part_vals) { - oprot.writeString(_iter609); + oprot.writeString(_iter617); } oprot.writeListEnd(); } @@ -49286,9 +49442,9 @@ if (struct.isSetPart_vals()) { { oprot.writeI32(struct.part_vals.size()); - for (String _iter610 : struct.part_vals) + for (String _iter618 : struct.part_vals) { - oprot.writeString(_iter610); + oprot.writeString(_iter618); } } } @@ -49311,13 +49467,13 @@ } if (incoming.get(2)) { { - org.apache.thrift.protocol.TList _list611 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.part_vals = new ArrayList(_list611.size); - for (int _i612 = 0; _i612 < _list611.size; ++_i612) + org.apache.thrift.protocol.TList _list619 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.part_vals = new ArrayList(_list619.size); + for (int _i620 = 0; _i620 < _list619.size; ++_i620) { - String _elem613; // required - _elem613 = iprot.readString(); - struct.part_vals.add(_elem613); + String _elem621; // required + _elem621 = iprot.readString(); + struct.part_vals.add(_elem621); } } struct.setPart_valsIsSet(true); @@ -50559,13 +50715,13 @@ case 3: // PART_VALS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list614 = iprot.readListBegin(); - struct.part_vals = new ArrayList(_list614.size); - for (int _i615 = 0; _i615 < _list614.size; ++_i615) + org.apache.thrift.protocol.TList _list622 = iprot.readListBegin(); + struct.part_vals = new ArrayList(_list622.size); + for (int _i623 = 0; _i623 < _list622.size; ++_i623) { - String _elem616; // required - _elem616 = iprot.readString(); - struct.part_vals.add(_elem616); + String _elem624; // required + _elem624 = iprot.readString(); + struct.part_vals.add(_elem624); } iprot.readListEnd(); } @@ -50618,9 +50774,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size())); - for (String _iter617 : struct.part_vals) + for (String _iter625 : struct.part_vals) { - oprot.writeString(_iter617); + oprot.writeString(_iter625); } oprot.writeListEnd(); } @@ -50677,9 +50833,9 @@ if (struct.isSetPart_vals()) { { oprot.writeI32(struct.part_vals.size()); - for (String _iter618 : struct.part_vals) + for (String _iter626 : struct.part_vals) { - oprot.writeString(_iter618); + oprot.writeString(_iter626); } } } @@ -50705,13 +50861,13 @@ } if (incoming.get(2)) { { - org.apache.thrift.protocol.TList _list619 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.part_vals = new ArrayList(_list619.size); - for (int _i620 = 0; _i620 < _list619.size; ++_i620) + org.apache.thrift.protocol.TList _list627 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.part_vals = new ArrayList(_list627.size); + for (int _i628 = 0; _i628 < _list627.size; ++_i628) { - String _elem621; // required - _elem621 = iprot.readString(); - struct.part_vals.add(_elem621); + String _elem629; // required + _elem629 = iprot.readString(); + struct.part_vals.add(_elem629); } } struct.setPart_valsIsSet(true); @@ -55316,13 +55472,13 @@ case 3: // PART_VALS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list622 = iprot.readListBegin(); - struct.part_vals = new ArrayList(_list622.size); - for (int _i623 = 0; _i623 < _list622.size; ++_i623) + org.apache.thrift.protocol.TList _list630 = iprot.readListBegin(); + struct.part_vals = new ArrayList(_list630.size); + for (int _i631 = 0; _i631 < _list630.size; ++_i631) { - String _elem624; // required - _elem624 = iprot.readString(); - struct.part_vals.add(_elem624); + String _elem632; // required + _elem632 = iprot.readString(); + struct.part_vals.add(_elem632); } iprot.readListEnd(); } @@ -55358,9 +55514,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size())); - for (String _iter625 : struct.part_vals) + for (String _iter633 : struct.part_vals) { - oprot.writeString(_iter625); + oprot.writeString(_iter633); } oprot.writeListEnd(); } @@ -55403,9 +55559,9 @@ if (struct.isSetPart_vals()) { { oprot.writeI32(struct.part_vals.size()); - for (String _iter626 : struct.part_vals) + for (String _iter634 : struct.part_vals) { - oprot.writeString(_iter626); + oprot.writeString(_iter634); } } } @@ -55425,13 +55581,13 @@ } if (incoming.get(2)) { { - org.apache.thrift.protocol.TList _list627 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.part_vals = new ArrayList(_list627.size); - for (int _i628 = 0; _i628 < _list627.size; ++_i628) + org.apache.thrift.protocol.TList _list635 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.part_vals = new ArrayList(_list635.size); + for (int _i636 = 0; _i636 < _list635.size; ++_i636) { - String _elem629; // required - _elem629 = iprot.readString(); - struct.part_vals.add(_elem629); + String _elem637; // required + _elem637 = iprot.readString(); + struct.part_vals.add(_elem637); } } struct.setPart_valsIsSet(true); @@ -56660,15 +56816,15 @@ case 1: // PARTITION_SPECS if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { { - org.apache.thrift.protocol.TMap _map630 = iprot.readMapBegin(); - struct.partitionSpecs = new HashMap(2*_map630.size); - for (int _i631 = 0; _i631 < _map630.size; ++_i631) + org.apache.thrift.protocol.TMap _map638 = iprot.readMapBegin(); + struct.partitionSpecs = new HashMap(2*_map638.size); + for (int _i639 = 0; _i639 < _map638.size; ++_i639) { - String _key632; // required - String _val633; // required - _key632 = iprot.readString(); - _val633 = iprot.readString(); - struct.partitionSpecs.put(_key632, _val633); + String _key640; // required + String _val641; // required + _key640 = iprot.readString(); + _val641 = iprot.readString(); + struct.partitionSpecs.put(_key640, _val641); } iprot.readMapEnd(); } @@ -56726,10 +56882,10 @@ oprot.writeFieldBegin(PARTITION_SPECS_FIELD_DESC); { oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.partitionSpecs.size())); - for (Map.Entry _iter634 : struct.partitionSpecs.entrySet()) + for (Map.Entry _iter642 : struct.partitionSpecs.entrySet()) { - oprot.writeString(_iter634.getKey()); - oprot.writeString(_iter634.getValue()); + oprot.writeString(_iter642.getKey()); + oprot.writeString(_iter642.getValue()); } oprot.writeMapEnd(); } @@ -56792,10 +56948,10 @@ if (struct.isSetPartitionSpecs()) { { oprot.writeI32(struct.partitionSpecs.size()); - for (Map.Entry _iter635 : struct.partitionSpecs.entrySet()) + for (Map.Entry _iter643 : struct.partitionSpecs.entrySet()) { - oprot.writeString(_iter635.getKey()); - oprot.writeString(_iter635.getValue()); + oprot.writeString(_iter643.getKey()); + oprot.writeString(_iter643.getValue()); } } } @@ -56819,15 +56975,15 @@ BitSet incoming = iprot.readBitSet(5); if (incoming.get(0)) { { - org.apache.thrift.protocol.TMap _map636 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.partitionSpecs = new HashMap(2*_map636.size); - for (int _i637 = 0; _i637 < _map636.size; ++_i637) + org.apache.thrift.protocol.TMap _map644 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.partitionSpecs = new HashMap(2*_map644.size); + for (int _i645 = 0; _i645 < _map644.size; ++_i645) { - String _key638; // required - String _val639; // required - _key638 = iprot.readString(); - _val639 = iprot.readString(); - struct.partitionSpecs.put(_key638, _val639); + String _key646; // required + String _val647; // required + _key646 = iprot.readString(); + _val647 = iprot.readString(); + struct.partitionSpecs.put(_key646, _val647); } } struct.setPartitionSpecsIsSet(true); @@ -58315,13 +58471,13 @@ case 3: // PART_VALS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list640 = iprot.readListBegin(); - struct.part_vals = new ArrayList(_list640.size); - for (int _i641 = 0; _i641 < _list640.size; ++_i641) + org.apache.thrift.protocol.TList _list648 = iprot.readListBegin(); + struct.part_vals = new ArrayList(_list648.size); + for (int _i649 = 0; _i649 < _list648.size; ++_i649) { - String _elem642; // required - _elem642 = iprot.readString(); - struct.part_vals.add(_elem642); + String _elem650; // required + _elem650 = iprot.readString(); + struct.part_vals.add(_elem650); } iprot.readListEnd(); } @@ -58341,13 +58497,13 @@ case 5: // GROUP_NAMES if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list643 = iprot.readListBegin(); - struct.group_names = new ArrayList(_list643.size); - for (int _i644 = 0; _i644 < _list643.size; ++_i644) + org.apache.thrift.protocol.TList _list651 = iprot.readListBegin(); + struct.group_names = new ArrayList(_list651.size); + for (int _i652 = 0; _i652 < _list651.size; ++_i652) { - String _elem645; // required - _elem645 = iprot.readString(); - struct.group_names.add(_elem645); + String _elem653; // required + _elem653 = iprot.readString(); + struct.group_names.add(_elem653); } iprot.readListEnd(); } @@ -58383,9 +58539,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size())); - for (String _iter646 : struct.part_vals) + for (String _iter654 : struct.part_vals) { - oprot.writeString(_iter646); + oprot.writeString(_iter654); } oprot.writeListEnd(); } @@ -58400,9 +58556,9 @@ oprot.writeFieldBegin(GROUP_NAMES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.group_names.size())); - for (String _iter647 : struct.group_names) + for (String _iter655 : struct.group_names) { - oprot.writeString(_iter647); + oprot.writeString(_iter655); } oprot.writeListEnd(); } @@ -58451,9 +58607,9 @@ if (struct.isSetPart_vals()) { { oprot.writeI32(struct.part_vals.size()); - for (String _iter648 : struct.part_vals) + for (String _iter656 : struct.part_vals) { - oprot.writeString(_iter648); + oprot.writeString(_iter656); } } } @@ -58463,9 +58619,9 @@ if (struct.isSetGroup_names()) { { oprot.writeI32(struct.group_names.size()); - for (String _iter649 : struct.group_names) + for (String _iter657 : struct.group_names) { - oprot.writeString(_iter649); + oprot.writeString(_iter657); } } } @@ -58485,13 +58641,13 @@ } if (incoming.get(2)) { { - org.apache.thrift.protocol.TList _list650 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.part_vals = new ArrayList(_list650.size); - for (int _i651 = 0; _i651 < _list650.size; ++_i651) + org.apache.thrift.protocol.TList _list658 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.part_vals = new ArrayList(_list658.size); + for (int _i659 = 0; _i659 < _list658.size; ++_i659) { - String _elem652; // required - _elem652 = iprot.readString(); - struct.part_vals.add(_elem652); + String _elem660; // required + _elem660 = iprot.readString(); + struct.part_vals.add(_elem660); } } struct.setPart_valsIsSet(true); @@ -58502,13 +58658,13 @@ } if (incoming.get(4)) { { - org.apache.thrift.protocol.TList _list653 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.group_names = new ArrayList(_list653.size); - for (int _i654 = 0; _i654 < _list653.size; ++_i654) + org.apache.thrift.protocol.TList _list661 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.group_names = new ArrayList(_list661.size); + for (int _i662 = 0; _i662 < _list661.size; ++_i662) { - String _elem655; // required - _elem655 = iprot.readString(); - struct.group_names.add(_elem655); + String _elem663; // required + _elem663 = iprot.readString(); + struct.group_names.add(_elem663); } } struct.setGroup_namesIsSet(true); @@ -61277,14 +61433,14 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list656 = iprot.readListBegin(); - struct.success = new ArrayList(_list656.size); - for (int _i657 = 0; _i657 < _list656.size; ++_i657) + org.apache.thrift.protocol.TList _list664 = iprot.readListBegin(); + struct.success = new ArrayList(_list664.size); + for (int _i665 = 0; _i665 < _list664.size; ++_i665) { - Partition _elem658; // required - _elem658 = new Partition(); - _elem658.read(iprot); - struct.success.add(_elem658); + Partition _elem666; // required + _elem666 = new Partition(); + _elem666.read(iprot); + struct.success.add(_elem666); } iprot.readListEnd(); } @@ -61328,9 +61484,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size())); - for (Partition _iter659 : struct.success) + for (Partition _iter667 : struct.success) { - _iter659.write(oprot); + _iter667.write(oprot); } oprot.writeListEnd(); } @@ -61377,9 +61533,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (Partition _iter660 : struct.success) + for (Partition _iter668 : struct.success) { - _iter660.write(oprot); + _iter668.write(oprot); } } } @@ -61397,14 +61553,14 @@ BitSet incoming = iprot.readBitSet(3); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list661 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.success = new ArrayList(_list661.size); - for (int _i662 = 0; _i662 < _list661.size; ++_i662) + org.apache.thrift.protocol.TList _list669 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.success = new ArrayList(_list669.size); + for (int _i670 = 0; _i670 < _list669.size; ++_i670) { - Partition _elem663; // required - _elem663 = new Partition(); - _elem663.read(iprot); - struct.success.add(_elem663); + Partition _elem671; // required + _elem671 = new Partition(); + _elem671.read(iprot); + struct.success.add(_elem671); } } struct.setSuccessIsSet(true); @@ -62097,13 +62253,13 @@ case 5: // GROUP_NAMES if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list664 = iprot.readListBegin(); - struct.group_names = new ArrayList(_list664.size); - for (int _i665 = 0; _i665 < _list664.size; ++_i665) + org.apache.thrift.protocol.TList _list672 = iprot.readListBegin(); + struct.group_names = new ArrayList(_list672.size); + for (int _i673 = 0; _i673 < _list672.size; ++_i673) { - String _elem666; // required - _elem666 = iprot.readString(); - struct.group_names.add(_elem666); + String _elem674; // required + _elem674 = iprot.readString(); + struct.group_names.add(_elem674); } iprot.readListEnd(); } @@ -62147,9 +62303,9 @@ oprot.writeFieldBegin(GROUP_NAMES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.group_names.size())); - for (String _iter667 : struct.group_names) + for (String _iter675 : struct.group_names) { - oprot.writeString(_iter667); + oprot.writeString(_iter675); } oprot.writeListEnd(); } @@ -62204,9 +62360,9 @@ if (struct.isSetGroup_names()) { { oprot.writeI32(struct.group_names.size()); - for (String _iter668 : struct.group_names) + for (String _iter676 : struct.group_names) { - oprot.writeString(_iter668); + oprot.writeString(_iter676); } } } @@ -62234,13 +62390,13 @@ } if (incoming.get(4)) { { - org.apache.thrift.protocol.TList _list669 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.group_names = new ArrayList(_list669.size); - for (int _i670 = 0; _i670 < _list669.size; ++_i670) + org.apache.thrift.protocol.TList _list677 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.group_names = new ArrayList(_list677.size); + for (int _i678 = 0; _i678 < _list677.size; ++_i678) { - String _elem671; // required - _elem671 = iprot.readString(); - struct.group_names.add(_elem671); + String _elem679; // required + _elem679 = iprot.readString(); + struct.group_names.add(_elem679); } } struct.setGroup_namesIsSet(true); @@ -62727,14 +62883,14 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list672 = iprot.readListBegin(); - struct.success = new ArrayList(_list672.size); - for (int _i673 = 0; _i673 < _list672.size; ++_i673) + org.apache.thrift.protocol.TList _list680 = iprot.readListBegin(); + struct.success = new ArrayList(_list680.size); + for (int _i681 = 0; _i681 < _list680.size; ++_i681) { - Partition _elem674; // required - _elem674 = new Partition(); - _elem674.read(iprot); - struct.success.add(_elem674); + Partition _elem682; // required + _elem682 = new Partition(); + _elem682.read(iprot); + struct.success.add(_elem682); } iprot.readListEnd(); } @@ -62778,9 +62934,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size())); - for (Partition _iter675 : struct.success) + for (Partition _iter683 : struct.success) { - _iter675.write(oprot); + _iter683.write(oprot); } oprot.writeListEnd(); } @@ -62827,9 +62983,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (Partition _iter676 : struct.success) + for (Partition _iter684 : struct.success) { - _iter676.write(oprot); + _iter684.write(oprot); } } } @@ -62847,14 +63003,14 @@ BitSet incoming = iprot.readBitSet(3); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list677 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.success = new ArrayList(_list677.size); - for (int _i678 = 0; _i678 < _list677.size; ++_i678) + org.apache.thrift.protocol.TList _list685 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.success = new ArrayList(_list685.size); + for (int _i686 = 0; _i686 < _list685.size; ++_i686) { - Partition _elem679; // required - _elem679 = new Partition(); - _elem679.read(iprot); - struct.success.add(_elem679); + Partition _elem687; // required + _elem687 = new Partition(); + _elem687.read(iprot); + struct.success.add(_elem687); } } struct.setSuccessIsSet(true); @@ -63917,14 +64073,14 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list680 = iprot.readListBegin(); - struct.success = new ArrayList(_list680.size); - for (int _i681 = 0; _i681 < _list680.size; ++_i681) + org.apache.thrift.protocol.TList _list688 = iprot.readListBegin(); + struct.success = new ArrayList(_list688.size); + for (int _i689 = 0; _i689 < _list688.size; ++_i689) { - PartitionSpec _elem682; // required - _elem682 = new PartitionSpec(); - _elem682.read(iprot); - struct.success.add(_elem682); + PartitionSpec _elem690; // required + _elem690 = new PartitionSpec(); + _elem690.read(iprot); + struct.success.add(_elem690); } iprot.readListEnd(); } @@ -63968,9 +64124,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size())); - for (PartitionSpec _iter683 : struct.success) + for (PartitionSpec _iter691 : struct.success) { - _iter683.write(oprot); + _iter691.write(oprot); } oprot.writeListEnd(); } @@ -64017,9 +64173,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (PartitionSpec _iter684 : struct.success) + for (PartitionSpec _iter692 : struct.success) { - _iter684.write(oprot); + _iter692.write(oprot); } } } @@ -64037,14 +64193,14 @@ BitSet incoming = iprot.readBitSet(3); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list685 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.success = new ArrayList(_list685.size); - for (int _i686 = 0; _i686 < _list685.size; ++_i686) + org.apache.thrift.protocol.TList _list693 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.success = new ArrayList(_list693.size); + for (int _i694 = 0; _i694 < _list693.size; ++_i694) { - PartitionSpec _elem687; // required - _elem687 = new PartitionSpec(); - _elem687.read(iprot); - struct.success.add(_elem687); + PartitionSpec _elem695; // required + _elem695 = new PartitionSpec(); + _elem695.read(iprot); + struct.success.add(_elem695); } } struct.setSuccessIsSet(true); @@ -65026,13 +65182,13 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list688 = iprot.readListBegin(); - struct.success = new ArrayList(_list688.size); - for (int _i689 = 0; _i689 < _list688.size; ++_i689) + org.apache.thrift.protocol.TList _list696 = iprot.readListBegin(); + struct.success = new ArrayList(_list696.size); + for (int _i697 = 0; _i697 < _list696.size; ++_i697) { - String _elem690; // required - _elem690 = iprot.readString(); - struct.success.add(_elem690); + String _elem698; // required + _elem698 = iprot.readString(); + struct.success.add(_elem698); } iprot.readListEnd(); } @@ -65067,9 +65223,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size())); - for (String _iter691 : struct.success) + for (String _iter699 : struct.success) { - oprot.writeString(_iter691); + oprot.writeString(_iter699); } oprot.writeListEnd(); } @@ -65108,9 +65264,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (String _iter692 : struct.success) + for (String _iter700 : struct.success) { - oprot.writeString(_iter692); + oprot.writeString(_iter700); } } } @@ -65125,13 +65281,13 @@ BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list693 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.success = new ArrayList(_list693.size); - for (int _i694 = 0; _i694 < _list693.size; ++_i694) + org.apache.thrift.protocol.TList _list701 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.success = new ArrayList(_list701.size); + for (int _i702 = 0; _i702 < _list701.size; ++_i702) { - String _elem695; // required - _elem695 = iprot.readString(); - struct.success.add(_elem695); + String _elem703; // required + _elem703 = iprot.readString(); + struct.success.add(_elem703); } } struct.setSuccessIsSet(true); @@ -65722,13 +65878,13 @@ case 3: // PART_VALS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list696 = iprot.readListBegin(); - struct.part_vals = new ArrayList(_list696.size); - for (int _i697 = 0; _i697 < _list696.size; ++_i697) + org.apache.thrift.protocol.TList _list704 = iprot.readListBegin(); + struct.part_vals = new ArrayList(_list704.size); + for (int _i705 = 0; _i705 < _list704.size; ++_i705) { - String _elem698; // required - _elem698 = iprot.readString(); - struct.part_vals.add(_elem698); + String _elem706; // required + _elem706 = iprot.readString(); + struct.part_vals.add(_elem706); } iprot.readListEnd(); } @@ -65772,9 +65928,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size())); - for (String _iter699 : struct.part_vals) + for (String _iter707 : struct.part_vals) { - oprot.writeString(_iter699); + oprot.writeString(_iter707); } oprot.writeListEnd(); } @@ -65823,9 +65979,9 @@ if (struct.isSetPart_vals()) { { oprot.writeI32(struct.part_vals.size()); - for (String _iter700 : struct.part_vals) + for (String _iter708 : struct.part_vals) { - oprot.writeString(_iter700); + oprot.writeString(_iter708); } } } @@ -65848,13 +66004,13 @@ } if (incoming.get(2)) { { - org.apache.thrift.protocol.TList _list701 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.part_vals = new ArrayList(_list701.size); - for (int _i702 = 0; _i702 < _list701.size; ++_i702) + org.apache.thrift.protocol.TList _list709 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.part_vals = new ArrayList(_list709.size); + for (int _i710 = 0; _i710 < _list709.size; ++_i710) { - String _elem703; // required - _elem703 = iprot.readString(); - struct.part_vals.add(_elem703); + String _elem711; // required + _elem711 = iprot.readString(); + struct.part_vals.add(_elem711); } } struct.setPart_valsIsSet(true); @@ -66345,14 +66501,14 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list704 = iprot.readListBegin(); - struct.success = new ArrayList(_list704.size); - for (int _i705 = 0; _i705 < _list704.size; ++_i705) + org.apache.thrift.protocol.TList _list712 = iprot.readListBegin(); + struct.success = new ArrayList(_list712.size); + for (int _i713 = 0; _i713 < _list712.size; ++_i713) { - Partition _elem706; // required - _elem706 = new Partition(); - _elem706.read(iprot); - struct.success.add(_elem706); + Partition _elem714; // required + _elem714 = new Partition(); + _elem714.read(iprot); + struct.success.add(_elem714); } iprot.readListEnd(); } @@ -66396,9 +66552,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size())); - for (Partition _iter707 : struct.success) + for (Partition _iter715 : struct.success) { - _iter707.write(oprot); + _iter715.write(oprot); } oprot.writeListEnd(); } @@ -66445,9 +66601,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (Partition _iter708 : struct.success) + for (Partition _iter716 : struct.success) { - _iter708.write(oprot); + _iter716.write(oprot); } } } @@ -66465,14 +66621,14 @@ BitSet incoming = iprot.readBitSet(3); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list709 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.success = new ArrayList(_list709.size); - for (int _i710 = 0; _i710 < _list709.size; ++_i710) + org.apache.thrift.protocol.TList _list717 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.success = new ArrayList(_list717.size); + for (int _i718 = 0; _i718 < _list717.size; ++_i718) { - Partition _elem711; // required - _elem711 = new Partition(); - _elem711.read(iprot); - struct.success.add(_elem711); + Partition _elem719; // required + _elem719 = new Partition(); + _elem719.read(iprot); + struct.success.add(_elem719); } } struct.setSuccessIsSet(true); @@ -67250,13 +67406,13 @@ case 3: // PART_VALS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list712 = iprot.readListBegin(); - struct.part_vals = new ArrayList(_list712.size); - for (int _i713 = 0; _i713 < _list712.size; ++_i713) + org.apache.thrift.protocol.TList _list720 = iprot.readListBegin(); + struct.part_vals = new ArrayList(_list720.size); + for (int _i721 = 0; _i721 < _list720.size; ++_i721) { - String _elem714; // required - _elem714 = iprot.readString(); - struct.part_vals.add(_elem714); + String _elem722; // required + _elem722 = iprot.readString(); + struct.part_vals.add(_elem722); } iprot.readListEnd(); } @@ -67284,13 +67440,13 @@ case 6: // GROUP_NAMES if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list715 = iprot.readListBegin(); - struct.group_names = new ArrayList(_list715.size); - for (int _i716 = 0; _i716 < _list715.size; ++_i716) + org.apache.thrift.protocol.TList _list723 = iprot.readListBegin(); + struct.group_names = new ArrayList(_list723.size); + for (int _i724 = 0; _i724 < _list723.size; ++_i724) { - String _elem717; // required - _elem717 = iprot.readString(); - struct.group_names.add(_elem717); + String _elem725; // required + _elem725 = iprot.readString(); + struct.group_names.add(_elem725); } iprot.readListEnd(); } @@ -67326,9 +67482,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size())); - for (String _iter718 : struct.part_vals) + for (String _iter726 : struct.part_vals) { - oprot.writeString(_iter718); + oprot.writeString(_iter726); } oprot.writeListEnd(); } @@ -67346,9 +67502,9 @@ oprot.writeFieldBegin(GROUP_NAMES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.group_names.size())); - for (String _iter719 : struct.group_names) + for (String _iter727 : struct.group_names) { - oprot.writeString(_iter719); + oprot.writeString(_iter727); } oprot.writeListEnd(); } @@ -67400,9 +67556,9 @@ if (struct.isSetPart_vals()) { { oprot.writeI32(struct.part_vals.size()); - for (String _iter720 : struct.part_vals) + for (String _iter728 : struct.part_vals) { - oprot.writeString(_iter720); + oprot.writeString(_iter728); } } } @@ -67415,9 +67571,9 @@ if (struct.isSetGroup_names()) { { oprot.writeI32(struct.group_names.size()); - for (String _iter721 : struct.group_names) + for (String _iter729 : struct.group_names) { - oprot.writeString(_iter721); + oprot.writeString(_iter729); } } } @@ -67437,13 +67593,13 @@ } if (incoming.get(2)) { { - org.apache.thrift.protocol.TList _list722 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.part_vals = new ArrayList(_list722.size); - for (int _i723 = 0; _i723 < _list722.size; ++_i723) + org.apache.thrift.protocol.TList _list730 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.part_vals = new ArrayList(_list730.size); + for (int _i731 = 0; _i731 < _list730.size; ++_i731) { - String _elem724; // required - _elem724 = iprot.readString(); - struct.part_vals.add(_elem724); + String _elem732; // required + _elem732 = iprot.readString(); + struct.part_vals.add(_elem732); } } struct.setPart_valsIsSet(true); @@ -67458,13 +67614,13 @@ } if (incoming.get(5)) { { - org.apache.thrift.protocol.TList _list725 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.group_names = new ArrayList(_list725.size); - for (int _i726 = 0; _i726 < _list725.size; ++_i726) + org.apache.thrift.protocol.TList _list733 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.group_names = new ArrayList(_list733.size); + for (int _i734 = 0; _i734 < _list733.size; ++_i734) { - String _elem727; // required - _elem727 = iprot.readString(); - struct.group_names.add(_elem727); + String _elem735; // required + _elem735 = iprot.readString(); + struct.group_names.add(_elem735); } } struct.setGroup_namesIsSet(true); @@ -67951,14 +68107,14 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list728 = iprot.readListBegin(); - struct.success = new ArrayList(_list728.size); - for (int _i729 = 0; _i729 < _list728.size; ++_i729) + org.apache.thrift.protocol.TList _list736 = iprot.readListBegin(); + struct.success = new ArrayList(_list736.size); + for (int _i737 = 0; _i737 < _list736.size; ++_i737) { - Partition _elem730; // required - _elem730 = new Partition(); - _elem730.read(iprot); - struct.success.add(_elem730); + Partition _elem738; // required + _elem738 = new Partition(); + _elem738.read(iprot); + struct.success.add(_elem738); } iprot.readListEnd(); } @@ -68002,9 +68158,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size())); - for (Partition _iter731 : struct.success) + for (Partition _iter739 : struct.success) { - _iter731.write(oprot); + _iter739.write(oprot); } oprot.writeListEnd(); } @@ -68051,9 +68207,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (Partition _iter732 : struct.success) + for (Partition _iter740 : struct.success) { - _iter732.write(oprot); + _iter740.write(oprot); } } } @@ -68071,14 +68227,14 @@ BitSet incoming = iprot.readBitSet(3); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list733 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.success = new ArrayList(_list733.size); - for (int _i734 = 0; _i734 < _list733.size; ++_i734) + org.apache.thrift.protocol.TList _list741 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.success = new ArrayList(_list741.size); + for (int _i742 = 0; _i742 < _list741.size; ++_i742) { - Partition _elem735; // required - _elem735 = new Partition(); - _elem735.read(iprot); - struct.success.add(_elem735); + Partition _elem743; // required + _elem743 = new Partition(); + _elem743.read(iprot); + struct.success.add(_elem743); } } struct.setSuccessIsSet(true); @@ -68674,13 +68830,13 @@ case 3: // PART_VALS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list736 = iprot.readListBegin(); - struct.part_vals = new ArrayList(_list736.size); - for (int _i737 = 0; _i737 < _list736.size; ++_i737) + org.apache.thrift.protocol.TList _list744 = iprot.readListBegin(); + struct.part_vals = new ArrayList(_list744.size); + for (int _i745 = 0; _i745 < _list744.size; ++_i745) { - String _elem738; // required - _elem738 = iprot.readString(); - struct.part_vals.add(_elem738); + String _elem746; // required + _elem746 = iprot.readString(); + struct.part_vals.add(_elem746); } iprot.readListEnd(); } @@ -68724,9 +68880,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size())); - for (String _iter739 : struct.part_vals) + for (String _iter747 : struct.part_vals) { - oprot.writeString(_iter739); + oprot.writeString(_iter747); } oprot.writeListEnd(); } @@ -68775,9 +68931,9 @@ if (struct.isSetPart_vals()) { { oprot.writeI32(struct.part_vals.size()); - for (String _iter740 : struct.part_vals) + for (String _iter748 : struct.part_vals) { - oprot.writeString(_iter740); + oprot.writeString(_iter748); } } } @@ -68800,13 +68956,13 @@ } if (incoming.get(2)) { { - org.apache.thrift.protocol.TList _list741 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.part_vals = new ArrayList(_list741.size); - for (int _i742 = 0; _i742 < _list741.size; ++_i742) + org.apache.thrift.protocol.TList _list749 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.part_vals = new ArrayList(_list749.size); + for (int _i750 = 0; _i750 < _list749.size; ++_i750) { - String _elem743; // required - _elem743 = iprot.readString(); - struct.part_vals.add(_elem743); + String _elem751; // required + _elem751 = iprot.readString(); + struct.part_vals.add(_elem751); } } struct.setPart_valsIsSet(true); @@ -69297,13 +69453,13 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list744 = iprot.readListBegin(); - struct.success = new ArrayList(_list744.size); - for (int _i745 = 0; _i745 < _list744.size; ++_i745) + org.apache.thrift.protocol.TList _list752 = iprot.readListBegin(); + struct.success = new ArrayList(_list752.size); + for (int _i753 = 0; _i753 < _list752.size; ++_i753) { - String _elem746; // required - _elem746 = iprot.readString(); - struct.success.add(_elem746); + String _elem754; // required + _elem754 = iprot.readString(); + struct.success.add(_elem754); } iprot.readListEnd(); } @@ -69347,9 +69503,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size())); - for (String _iter747 : struct.success) + for (String _iter755 : struct.success) { - oprot.writeString(_iter747); + oprot.writeString(_iter755); } oprot.writeListEnd(); } @@ -69396,9 +69552,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (String _iter748 : struct.success) + for (String _iter756 : struct.success) { - oprot.writeString(_iter748); + oprot.writeString(_iter756); } } } @@ -69416,13 +69572,13 @@ BitSet incoming = iprot.readBitSet(3); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list749 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.success = new ArrayList(_list749.size); - for (int _i750 = 0; _i750 < _list749.size; ++_i750) + org.apache.thrift.protocol.TList _list757 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.success = new ArrayList(_list757.size); + for (int _i758 = 0; _i758 < _list757.size; ++_i758) { - String _elem751; // required - _elem751 = iprot.readString(); - struct.success.add(_elem751); + String _elem759; // required + _elem759 = iprot.readString(); + struct.success.add(_elem759); } } struct.setSuccessIsSet(true); @@ -70589,14 +70745,14 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list752 = iprot.readListBegin(); - struct.success = new ArrayList(_list752.size); - for (int _i753 = 0; _i753 < _list752.size; ++_i753) + org.apache.thrift.protocol.TList _list760 = iprot.readListBegin(); + struct.success = new ArrayList(_list760.size); + for (int _i761 = 0; _i761 < _list760.size; ++_i761) { - Partition _elem754; // required - _elem754 = new Partition(); - _elem754.read(iprot); - struct.success.add(_elem754); + Partition _elem762; // required + _elem762 = new Partition(); + _elem762.read(iprot); + struct.success.add(_elem762); } iprot.readListEnd(); } @@ -70640,9 +70796,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size())); - for (Partition _iter755 : struct.success) + for (Partition _iter763 : struct.success) { - _iter755.write(oprot); + _iter763.write(oprot); } oprot.writeListEnd(); } @@ -70689,9 +70845,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (Partition _iter756 : struct.success) + for (Partition _iter764 : struct.success) { - _iter756.write(oprot); + _iter764.write(oprot); } } } @@ -70709,14 +70865,14 @@ BitSet incoming = iprot.readBitSet(3); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list757 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.success = new ArrayList(_list757.size); - for (int _i758 = 0; _i758 < _list757.size; ++_i758) + org.apache.thrift.protocol.TList _list765 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.success = new ArrayList(_list765.size); + for (int _i766 = 0; _i766 < _list765.size; ++_i766) { - Partition _elem759; // required - _elem759 = new Partition(); - _elem759.read(iprot); - struct.success.add(_elem759); + Partition _elem767; // required + _elem767 = new Partition(); + _elem767.read(iprot); + struct.success.add(_elem767); } } struct.setSuccessIsSet(true); @@ -71883,14 +72039,14 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list760 = iprot.readListBegin(); - struct.success = new ArrayList(_list760.size); - for (int _i761 = 0; _i761 < _list760.size; ++_i761) + org.apache.thrift.protocol.TList _list768 = iprot.readListBegin(); + struct.success = new ArrayList(_list768.size); + for (int _i769 = 0; _i769 < _list768.size; ++_i769) { - PartitionSpec _elem762; // required - _elem762 = new PartitionSpec(); - _elem762.read(iprot); - struct.success.add(_elem762); + PartitionSpec _elem770; // required + _elem770 = new PartitionSpec(); + _elem770.read(iprot); + struct.success.add(_elem770); } iprot.readListEnd(); } @@ -71934,9 +72090,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size())); - for (PartitionSpec _iter763 : struct.success) + for (PartitionSpec _iter771 : struct.success) { - _iter763.write(oprot); + _iter771.write(oprot); } oprot.writeListEnd(); } @@ -71983,9 +72139,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (PartitionSpec _iter764 : struct.success) + for (PartitionSpec _iter772 : struct.success) { - _iter764.write(oprot); + _iter772.write(oprot); } } } @@ -72003,14 +72159,14 @@ BitSet incoming = iprot.readBitSet(3); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list765 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.success = new ArrayList(_list765.size); - for (int _i766 = 0; _i766 < _list765.size; ++_i766) + org.apache.thrift.protocol.TList _list773 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.success = new ArrayList(_list773.size); + for (int _i774 = 0; _i774 < _list773.size; ++_i774) { - PartitionSpec _elem767; // required - _elem767 = new PartitionSpec(); - _elem767.read(iprot); - struct.success.add(_elem767); + PartitionSpec _elem775; // required + _elem775 = new PartitionSpec(); + _elem775.read(iprot); + struct.success.add(_elem775); } } struct.setSuccessIsSet(true); @@ -73461,13 +73617,13 @@ case 3: // NAMES if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list768 = iprot.readListBegin(); - struct.names = new ArrayList(_list768.size); - for (int _i769 = 0; _i769 < _list768.size; ++_i769) + org.apache.thrift.protocol.TList _list776 = iprot.readListBegin(); + struct.names = new ArrayList(_list776.size); + for (int _i777 = 0; _i777 < _list776.size; ++_i777) { - String _elem770; // required - _elem770 = iprot.readString(); - struct.names.add(_elem770); + String _elem778; // required + _elem778 = iprot.readString(); + struct.names.add(_elem778); } iprot.readListEnd(); } @@ -73503,9 +73659,9 @@ oprot.writeFieldBegin(NAMES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.names.size())); - for (String _iter771 : struct.names) + for (String _iter779 : struct.names) { - oprot.writeString(_iter771); + oprot.writeString(_iter779); } oprot.writeListEnd(); } @@ -73548,9 +73704,9 @@ if (struct.isSetNames()) { { oprot.writeI32(struct.names.size()); - for (String _iter772 : struct.names) + for (String _iter780 : struct.names) { - oprot.writeString(_iter772); + oprot.writeString(_iter780); } } } @@ -73570,13 +73726,13 @@ } if (incoming.get(2)) { { - org.apache.thrift.protocol.TList _list773 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.names = new ArrayList(_list773.size); - for (int _i774 = 0; _i774 < _list773.size; ++_i774) + org.apache.thrift.protocol.TList _list781 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.names = new ArrayList(_list781.size); + for (int _i782 = 0; _i782 < _list781.size; ++_i782) { - String _elem775; // required - _elem775 = iprot.readString(); - struct.names.add(_elem775); + String _elem783; // required + _elem783 = iprot.readString(); + struct.names.add(_elem783); } } struct.setNamesIsSet(true); @@ -74063,14 +74219,14 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list776 = iprot.readListBegin(); - struct.success = new ArrayList(_list776.size); - for (int _i777 = 0; _i777 < _list776.size; ++_i777) + org.apache.thrift.protocol.TList _list784 = iprot.readListBegin(); + struct.success = new ArrayList(_list784.size); + for (int _i785 = 0; _i785 < _list784.size; ++_i785) { - Partition _elem778; // required - _elem778 = new Partition(); - _elem778.read(iprot); - struct.success.add(_elem778); + Partition _elem786; // required + _elem786 = new Partition(); + _elem786.read(iprot); + struct.success.add(_elem786); } iprot.readListEnd(); } @@ -74114,9 +74270,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size())); - for (Partition _iter779 : struct.success) + for (Partition _iter787 : struct.success) { - _iter779.write(oprot); + _iter787.write(oprot); } oprot.writeListEnd(); } @@ -74163,9 +74319,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (Partition _iter780 : struct.success) + for (Partition _iter788 : struct.success) { - _iter780.write(oprot); + _iter788.write(oprot); } } } @@ -74183,14 +74339,14 @@ BitSet incoming = iprot.readBitSet(3); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list781 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.success = new ArrayList(_list781.size); - for (int _i782 = 0; _i782 < _list781.size; ++_i782) + org.apache.thrift.protocol.TList _list789 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.success = new ArrayList(_list789.size); + for (int _i790 = 0; _i790 < _list789.size; ++_i790) { - Partition _elem783; // required - _elem783 = new Partition(); - _elem783.read(iprot); - struct.success.add(_elem783); + Partition _elem791; // required + _elem791 = new Partition(); + _elem791.read(iprot); + struct.success.add(_elem791); } } struct.setSuccessIsSet(true); @@ -75740,14 +75896,14 @@ case 3: // NEW_PARTS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list784 = iprot.readListBegin(); - struct.new_parts = new ArrayList(_list784.size); - for (int _i785 = 0; _i785 < _list784.size; ++_i785) + org.apache.thrift.protocol.TList _list792 = iprot.readListBegin(); + struct.new_parts = new ArrayList(_list792.size); + for (int _i793 = 0; _i793 < _list792.size; ++_i793) { - Partition _elem786; // required - _elem786 = new Partition(); - _elem786.read(iprot); - struct.new_parts.add(_elem786); + Partition _elem794; // required + _elem794 = new Partition(); + _elem794.read(iprot); + struct.new_parts.add(_elem794); } iprot.readListEnd(); } @@ -75783,9 +75939,9 @@ oprot.writeFieldBegin(NEW_PARTS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.new_parts.size())); - for (Partition _iter787 : struct.new_parts) + for (Partition _iter795 : struct.new_parts) { - _iter787.write(oprot); + _iter795.write(oprot); } oprot.writeListEnd(); } @@ -75828,9 +75984,9 @@ if (struct.isSetNew_parts()) { { oprot.writeI32(struct.new_parts.size()); - for (Partition _iter788 : struct.new_parts) + for (Partition _iter796 : struct.new_parts) { - _iter788.write(oprot); + _iter796.write(oprot); } } } @@ -75850,14 +76006,14 @@ } if (incoming.get(2)) { { - org.apache.thrift.protocol.TList _list789 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.new_parts = new ArrayList(_list789.size); - for (int _i790 = 0; _i790 < _list789.size; ++_i790) + org.apache.thrift.protocol.TList _list797 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.new_parts = new ArrayList(_list797.size); + for (int _i798 = 0; _i798 < _list797.size; ++_i798) { - Partition _elem791; // required - _elem791 = new Partition(); - _elem791.read(iprot); - struct.new_parts.add(_elem791); + Partition _elem799; // required + _elem799 = new Partition(); + _elem799.read(iprot); + struct.new_parts.add(_elem799); } } struct.setNew_partsIsSet(true); @@ -78056,13 +78212,13 @@ case 3: // PART_VALS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list792 = iprot.readListBegin(); - struct.part_vals = new ArrayList(_list792.size); - for (int _i793 = 0; _i793 < _list792.size; ++_i793) + org.apache.thrift.protocol.TList _list800 = iprot.readListBegin(); + struct.part_vals = new ArrayList(_list800.size); + for (int _i801 = 0; _i801 < _list800.size; ++_i801) { - String _elem794; // required - _elem794 = iprot.readString(); - struct.part_vals.add(_elem794); + String _elem802; // required + _elem802 = iprot.readString(); + struct.part_vals.add(_elem802); } iprot.readListEnd(); } @@ -78107,9 +78263,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size())); - for (String _iter795 : struct.part_vals) + for (String _iter803 : struct.part_vals) { - oprot.writeString(_iter795); + oprot.writeString(_iter803); } oprot.writeListEnd(); } @@ -78160,9 +78316,9 @@ if (struct.isSetPart_vals()) { { oprot.writeI32(struct.part_vals.size()); - for (String _iter796 : struct.part_vals) + for (String _iter804 : struct.part_vals) { - oprot.writeString(_iter796); + oprot.writeString(_iter804); } } } @@ -78185,13 +78341,13 @@ } if (incoming.get(2)) { { - org.apache.thrift.protocol.TList _list797 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.part_vals = new ArrayList(_list797.size); - for (int _i798 = 0; _i798 < _list797.size; ++_i798) + org.apache.thrift.protocol.TList _list805 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.part_vals = new ArrayList(_list805.size); + for (int _i806 = 0; _i806 < _list805.size; ++_i806) { - String _elem799; // required - _elem799 = iprot.readString(); - struct.part_vals.add(_elem799); + String _elem807; // required + _elem807 = iprot.readString(); + struct.part_vals.add(_elem807); } } struct.setPart_valsIsSet(true); @@ -79068,13 +79224,13 @@ case 1: // PART_VALS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list800 = iprot.readListBegin(); - struct.part_vals = new ArrayList(_list800.size); - for (int _i801 = 0; _i801 < _list800.size; ++_i801) + org.apache.thrift.protocol.TList _list808 = iprot.readListBegin(); + struct.part_vals = new ArrayList(_list808.size); + for (int _i809 = 0; _i809 < _list808.size; ++_i809) { - String _elem802; // required - _elem802 = iprot.readString(); - struct.part_vals.add(_elem802); + String _elem810; // required + _elem810 = iprot.readString(); + struct.part_vals.add(_elem810); } iprot.readListEnd(); } @@ -79108,9 +79264,9 @@ oprot.writeFieldBegin(PART_VALS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.part_vals.size())); - for (String _iter803 : struct.part_vals) + for (String _iter811 : struct.part_vals) { - oprot.writeString(_iter803); + oprot.writeString(_iter811); } oprot.writeListEnd(); } @@ -79147,9 +79303,9 @@ if (struct.isSetPart_vals()) { { oprot.writeI32(struct.part_vals.size()); - for (String _iter804 : struct.part_vals) + for (String _iter812 : struct.part_vals) { - oprot.writeString(_iter804); + oprot.writeString(_iter812); } } } @@ -79164,13 +79320,13 @@ BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list805 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.part_vals = new ArrayList(_list805.size); - for (int _i806 = 0; _i806 < _list805.size; ++_i806) + org.apache.thrift.protocol.TList _list813 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.part_vals = new ArrayList(_list813.size); + for (int _i814 = 0; _i814 < _list813.size; ++_i814) { - String _elem807; // required - _elem807 = iprot.readString(); - struct.part_vals.add(_elem807); + String _elem815; // required + _elem815 = iprot.readString(); + struct.part_vals.add(_elem815); } } struct.setPart_valsIsSet(true); @@ -81328,13 +81484,13 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list808 = iprot.readListBegin(); - struct.success = new ArrayList(_list808.size); - for (int _i809 = 0; _i809 < _list808.size; ++_i809) + org.apache.thrift.protocol.TList _list816 = iprot.readListBegin(); + struct.success = new ArrayList(_list816.size); + for (int _i817 = 0; _i817 < _list816.size; ++_i817) { - String _elem810; // required - _elem810 = iprot.readString(); - struct.success.add(_elem810); + String _elem818; // required + _elem818 = iprot.readString(); + struct.success.add(_elem818); } iprot.readListEnd(); } @@ -81369,9 +81525,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size())); - for (String _iter811 : struct.success) + for (String _iter819 : struct.success) { - oprot.writeString(_iter811); + oprot.writeString(_iter819); } oprot.writeListEnd(); } @@ -81410,9 +81566,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (String _iter812 : struct.success) + for (String _iter820 : struct.success) { - oprot.writeString(_iter812); + oprot.writeString(_iter820); } } } @@ -81427,13 +81583,13 @@ BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list813 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.success = new ArrayList(_list813.size); - for (int _i814 = 0; _i814 < _list813.size; ++_i814) + org.apache.thrift.protocol.TList _list821 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.success = new ArrayList(_list821.size); + for (int _i822 = 0; _i822 < _list821.size; ++_i822) { - String _elem815; // required - _elem815 = iprot.readString(); - struct.success.add(_elem815); + String _elem823; // required + _elem823 = iprot.readString(); + struct.success.add(_elem823); } } struct.setSuccessIsSet(true); @@ -82207,15 +82363,15 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { { - org.apache.thrift.protocol.TMap _map816 = iprot.readMapBegin(); - struct.success = new HashMap(2*_map816.size); - for (int _i817 = 0; _i817 < _map816.size; ++_i817) + org.apache.thrift.protocol.TMap _map824 = iprot.readMapBegin(); + struct.success = new HashMap(2*_map824.size); + for (int _i825 = 0; _i825 < _map824.size; ++_i825) { - String _key818; // required - String _val819; // required - _key818 = iprot.readString(); - _val819 = iprot.readString(); - struct.success.put(_key818, _val819); + String _key826; // required + String _val827; // required + _key826 = iprot.readString(); + _val827 = iprot.readString(); + struct.success.put(_key826, _val827); } iprot.readMapEnd(); } @@ -82250,10 +82406,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, struct.success.size())); - for (Map.Entry _iter820 : struct.success.entrySet()) + for (Map.Entry _iter828 : struct.success.entrySet()) { - oprot.writeString(_iter820.getKey()); - oprot.writeString(_iter820.getValue()); + oprot.writeString(_iter828.getKey()); + oprot.writeString(_iter828.getValue()); } oprot.writeMapEnd(); } @@ -82292,10 +82448,10 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (Map.Entry _iter821 : struct.success.entrySet()) + for (Map.Entry _iter829 : struct.success.entrySet()) { - oprot.writeString(_iter821.getKey()); - oprot.writeString(_iter821.getValue()); + oprot.writeString(_iter829.getKey()); + oprot.writeString(_iter829.getValue()); } } } @@ -82310,15 +82466,15 @@ BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { { - org.apache.thrift.protocol.TMap _map822 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.success = new HashMap(2*_map822.size); - for (int _i823 = 0; _i823 < _map822.size; ++_i823) + org.apache.thrift.protocol.TMap _map830 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.success = new HashMap(2*_map830.size); + for (int _i831 = 0; _i831 < _map830.size; ++_i831) { - String _key824; // required - String _val825; // required - _key824 = iprot.readString(); - _val825 = iprot.readString(); - struct.success.put(_key824, _val825); + String _key832; // required + String _val833; // required + _key832 = iprot.readString(); + _val833 = iprot.readString(); + struct.success.put(_key832, _val833); } } struct.setSuccessIsSet(true); @@ -82924,15 +83080,15 @@ case 3: // PART_VALS if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { { - org.apache.thrift.protocol.TMap _map826 = iprot.readMapBegin(); - struct.part_vals = new HashMap(2*_map826.size); - for (int _i827 = 0; _i827 < _map826.size; ++_i827) + org.apache.thrift.protocol.TMap _map834 = iprot.readMapBegin(); + struct.part_vals = new HashMap(2*_map834.size); + for (int _i835 = 0; _i835 < _map834.size; ++_i835) { - String _key828; // required - String _val829; // required - _key828 = iprot.readString(); - _val829 = iprot.readString(); - struct.part_vals.put(_key828, _val829); + String _key836; // required + String _val837; // required + _key836 = iprot.readString(); + _val837 = iprot.readString(); + struct.part_vals.put(_key836, _val837); } iprot.readMapEnd(); } @@ -82976,10 +83132,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, struct.part_vals.size())); - for (Map.Entry _iter830 : struct.part_vals.entrySet()) + for (Map.Entry _iter838 : struct.part_vals.entrySet()) { - oprot.writeString(_iter830.getKey()); - oprot.writeString(_iter830.getValue()); + oprot.writeString(_iter838.getKey()); + oprot.writeString(_iter838.getValue()); } oprot.writeMapEnd(); } @@ -83030,10 +83186,10 @@ if (struct.isSetPart_vals()) { { oprot.writeI32(struct.part_vals.size()); - for (Map.Entry _iter831 : struct.part_vals.entrySet()) + for (Map.Entry _iter839 : struct.part_vals.entrySet()) { - oprot.writeString(_iter831.getKey()); - oprot.writeString(_iter831.getValue()); + oprot.writeString(_iter839.getKey()); + oprot.writeString(_iter839.getValue()); } } } @@ -83056,15 +83212,15 @@ } if (incoming.get(2)) { { - org.apache.thrift.protocol.TMap _map832 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.part_vals = new HashMap(2*_map832.size); - for (int _i833 = 0; _i833 < _map832.size; ++_i833) + org.apache.thrift.protocol.TMap _map840 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.part_vals = new HashMap(2*_map840.size); + for (int _i841 = 0; _i841 < _map840.size; ++_i841) { - String _key834; // required - String _val835; // required - _key834 = iprot.readString(); - _val835 = iprot.readString(); - struct.part_vals.put(_key834, _val835); + String _key842; // required + String _val843; // required + _key842 = iprot.readString(); + _val843 = iprot.readString(); + struct.part_vals.put(_key842, _val843); } } struct.setPart_valsIsSet(true); @@ -84559,15 +84715,15 @@ case 3: // PART_VALS if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { { - org.apache.thrift.protocol.TMap _map836 = iprot.readMapBegin(); - struct.part_vals = new HashMap(2*_map836.size); - for (int _i837 = 0; _i837 < _map836.size; ++_i837) + org.apache.thrift.protocol.TMap _map844 = iprot.readMapBegin(); + struct.part_vals = new HashMap(2*_map844.size); + for (int _i845 = 0; _i845 < _map844.size; ++_i845) { - String _key838; // required - String _val839; // required - _key838 = iprot.readString(); - _val839 = iprot.readString(); - struct.part_vals.put(_key838, _val839); + String _key846; // required + String _val847; // required + _key846 = iprot.readString(); + _val847 = iprot.readString(); + struct.part_vals.put(_key846, _val847); } iprot.readMapEnd(); } @@ -84611,10 +84767,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, struct.part_vals.size())); - for (Map.Entry _iter840 : struct.part_vals.entrySet()) + for (Map.Entry _iter848 : struct.part_vals.entrySet()) { - oprot.writeString(_iter840.getKey()); - oprot.writeString(_iter840.getValue()); + oprot.writeString(_iter848.getKey()); + oprot.writeString(_iter848.getValue()); } oprot.writeMapEnd(); } @@ -84665,10 +84821,10 @@ if (struct.isSetPart_vals()) { { oprot.writeI32(struct.part_vals.size()); - for (Map.Entry _iter841 : struct.part_vals.entrySet()) + for (Map.Entry _iter849 : struct.part_vals.entrySet()) { - oprot.writeString(_iter841.getKey()); - oprot.writeString(_iter841.getValue()); + oprot.writeString(_iter849.getKey()); + oprot.writeString(_iter849.getValue()); } } } @@ -84691,15 +84847,15 @@ } if (incoming.get(2)) { { - org.apache.thrift.protocol.TMap _map842 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.part_vals = new HashMap(2*_map842.size); - for (int _i843 = 0; _i843 < _map842.size; ++_i843) + org.apache.thrift.protocol.TMap _map850 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.part_vals = new HashMap(2*_map850.size); + for (int _i851 = 0; _i851 < _map850.size; ++_i851) { - String _key844; // required - String _val845; // required - _key844 = iprot.readString(); - _val845 = iprot.readString(); - struct.part_vals.put(_key844, _val845); + String _key852; // required + String _val853; // required + _key852 = iprot.readString(); + _val853 = iprot.readString(); + struct.part_vals.put(_key852, _val853); } } struct.setPart_valsIsSet(true); @@ -91423,14 +91579,14 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list846 = iprot.readListBegin(); - struct.success = new ArrayList(_list846.size); - for (int _i847 = 0; _i847 < _list846.size; ++_i847) + org.apache.thrift.protocol.TList _list854 = iprot.readListBegin(); + struct.success = new ArrayList(_list854.size); + for (int _i855 = 0; _i855 < _list854.size; ++_i855) { - Index _elem848; // required - _elem848 = new Index(); - _elem848.read(iprot); - struct.success.add(_elem848); + Index _elem856; // required + _elem856 = new Index(); + _elem856.read(iprot); + struct.success.add(_elem856); } iprot.readListEnd(); } @@ -91474,9 +91630,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size())); - for (Index _iter849 : struct.success) + for (Index _iter857 : struct.success) { - _iter849.write(oprot); + _iter857.write(oprot); } oprot.writeListEnd(); } @@ -91523,9 +91679,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (Index _iter850 : struct.success) + for (Index _iter858 : struct.success) { - _iter850.write(oprot); + _iter858.write(oprot); } } } @@ -91543,14 +91699,14 @@ BitSet incoming = iprot.readBitSet(3); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list851 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.success = new ArrayList(_list851.size); - for (int _i852 = 0; _i852 < _list851.size; ++_i852) + org.apache.thrift.protocol.TList _list859 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.success = new ArrayList(_list859.size); + for (int _i860 = 0; _i860 < _list859.size; ++_i860) { - Index _elem853; // required - _elem853 = new Index(); - _elem853.read(iprot); - struct.success.add(_elem853); + Index _elem861; // required + _elem861 = new Index(); + _elem861.read(iprot); + struct.success.add(_elem861); } } struct.setSuccessIsSet(true); @@ -92532,13 +92688,13 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list854 = iprot.readListBegin(); - struct.success = new ArrayList(_list854.size); - for (int _i855 = 0; _i855 < _list854.size; ++_i855) + org.apache.thrift.protocol.TList _list862 = iprot.readListBegin(); + struct.success = new ArrayList(_list862.size); + for (int _i863 = 0; _i863 < _list862.size; ++_i863) { - String _elem856; // required - _elem856 = iprot.readString(); - struct.success.add(_elem856); + String _elem864; // required + _elem864 = iprot.readString(); + struct.success.add(_elem864); } iprot.readListEnd(); } @@ -92573,9 +92729,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size())); - for (String _iter857 : struct.success) + for (String _iter865 : struct.success) { - oprot.writeString(_iter857); + oprot.writeString(_iter865); } oprot.writeListEnd(); } @@ -92614,9 +92770,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (String _iter858 : struct.success) + for (String _iter866 : struct.success) { - oprot.writeString(_iter858); + oprot.writeString(_iter866); } } } @@ -92631,13 +92787,13 @@ BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list859 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.success = new ArrayList(_list859.size); - for (int _i860 = 0; _i860 < _list859.size; ++_i860) + org.apache.thrift.protocol.TList _list867 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.success = new ArrayList(_list867.size); + for (int _i868 = 0; _i868 < _list867.size; ++_i868) { - String _elem861; // required - _elem861 = iprot.readString(); - struct.success.add(_elem861); + String _elem869; // required + _elem869 = iprot.readString(); + struct.success.add(_elem869); } } struct.setSuccessIsSet(true); @@ -108375,13 +108531,13 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list862 = iprot.readListBegin(); - struct.success = new ArrayList(_list862.size); - for (int _i863 = 0; _i863 < _list862.size; ++_i863) + org.apache.thrift.protocol.TList _list870 = iprot.readListBegin(); + struct.success = new ArrayList(_list870.size); + for (int _i871 = 0; _i871 < _list870.size; ++_i871) { - String _elem864; // required - _elem864 = iprot.readString(); - struct.success.add(_elem864); + String _elem872; // required + _elem872 = iprot.readString(); + struct.success.add(_elem872); } iprot.readListEnd(); } @@ -108416,9 +108572,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size())); - for (String _iter865 : struct.success) + for (String _iter873 : struct.success) { - oprot.writeString(_iter865); + oprot.writeString(_iter873); } oprot.writeListEnd(); } @@ -108457,9 +108613,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (String _iter866 : struct.success) + for (String _iter874 : struct.success) { - oprot.writeString(_iter866); + oprot.writeString(_iter874); } } } @@ -108474,13 +108630,13 @@ BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list867 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.success = new ArrayList(_list867.size); - for (int _i868 = 0; _i868 < _list867.size; ++_i868) + org.apache.thrift.protocol.TList _list875 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.success = new ArrayList(_list875.size); + for (int _i876 = 0; _i876 < _list875.size; ++_i876) { - String _elem869; // required - _elem869 = iprot.readString(); - struct.success.add(_elem869); + String _elem877; // required + _elem877 = iprot.readString(); + struct.success.add(_elem877); } } struct.setSuccessIsSet(true); @@ -111823,13 +111979,13 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list870 = iprot.readListBegin(); - struct.success = new ArrayList(_list870.size); - for (int _i871 = 0; _i871 < _list870.size; ++_i871) + org.apache.thrift.protocol.TList _list878 = iprot.readListBegin(); + struct.success = new ArrayList(_list878.size); + for (int _i879 = 0; _i879 < _list878.size; ++_i879) { - String _elem872; // required - _elem872 = iprot.readString(); - struct.success.add(_elem872); + String _elem880; // required + _elem880 = iprot.readString(); + struct.success.add(_elem880); } iprot.readListEnd(); } @@ -111864,9 +112020,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size())); - for (String _iter873 : struct.success) + for (String _iter881 : struct.success) { - oprot.writeString(_iter873); + oprot.writeString(_iter881); } oprot.writeListEnd(); } @@ -111905,9 +112061,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (String _iter874 : struct.success) + for (String _iter882 : struct.success) { - oprot.writeString(_iter874); + oprot.writeString(_iter882); } } } @@ -111922,13 +112078,13 @@ BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list875 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.success = new ArrayList(_list875.size); - for (int _i876 = 0; _i876 < _list875.size; ++_i876) + org.apache.thrift.protocol.TList _list883 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.success = new ArrayList(_list883.size); + for (int _i884 = 0; _i884 < _list883.size; ++_i884) { - String _elem877; // required - _elem877 = iprot.readString(); - struct.success.add(_elem877); + String _elem885; // required + _elem885 = iprot.readString(); + struct.success.add(_elem885); } } struct.setSuccessIsSet(true); @@ -115219,14 +115375,14 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list878 = iprot.readListBegin(); - struct.success = new ArrayList(_list878.size); - for (int _i879 = 0; _i879 < _list878.size; ++_i879) + org.apache.thrift.protocol.TList _list886 = iprot.readListBegin(); + struct.success = new ArrayList(_list886.size); + for (int _i887 = 0; _i887 < _list886.size; ++_i887) { - Role _elem880; // required - _elem880 = new Role(); - _elem880.read(iprot); - struct.success.add(_elem880); + Role _elem888; // required + _elem888 = new Role(); + _elem888.read(iprot); + struct.success.add(_elem888); } iprot.readListEnd(); } @@ -115261,9 +115417,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size())); - for (Role _iter881 : struct.success) + for (Role _iter889 : struct.success) { - _iter881.write(oprot); + _iter889.write(oprot); } oprot.writeListEnd(); } @@ -115302,9 +115458,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (Role _iter882 : struct.success) + for (Role _iter890 : struct.success) { - _iter882.write(oprot); + _iter890.write(oprot); } } } @@ -115319,14 +115475,14 @@ BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list883 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.success = new ArrayList(_list883.size); - for (int _i884 = 0; _i884 < _list883.size; ++_i884) + org.apache.thrift.protocol.TList _list891 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.success = new ArrayList(_list891.size); + for (int _i892 = 0; _i892 < _list891.size; ++_i892) { - Role _elem885; // required - _elem885 = new Role(); - _elem885.read(iprot); - struct.success.add(_elem885); + Role _elem893; // required + _elem893 = new Role(); + _elem893.read(iprot); + struct.success.add(_elem893); } } struct.setSuccessIsSet(true); @@ -118334,13 +118490,13 @@ case 3: // GROUP_NAMES if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list886 = iprot.readListBegin(); - struct.group_names = new ArrayList(_list886.size); - for (int _i887 = 0; _i887 < _list886.size; ++_i887) + org.apache.thrift.protocol.TList _list894 = iprot.readListBegin(); + struct.group_names = new ArrayList(_list894.size); + for (int _i895 = 0; _i895 < _list894.size; ++_i895) { - String _elem888; // required - _elem888 = iprot.readString(); - struct.group_names.add(_elem888); + String _elem896; // required + _elem896 = iprot.readString(); + struct.group_names.add(_elem896); } iprot.readListEnd(); } @@ -118376,9 +118532,9 @@ oprot.writeFieldBegin(GROUP_NAMES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.group_names.size())); - for (String _iter889 : struct.group_names) + for (String _iter897 : struct.group_names) { - oprot.writeString(_iter889); + oprot.writeString(_iter897); } oprot.writeListEnd(); } @@ -118421,9 +118577,9 @@ if (struct.isSetGroup_names()) { { oprot.writeI32(struct.group_names.size()); - for (String _iter890 : struct.group_names) + for (String _iter898 : struct.group_names) { - oprot.writeString(_iter890); + oprot.writeString(_iter898); } } } @@ -118444,13 +118600,13 @@ } if (incoming.get(2)) { { - org.apache.thrift.protocol.TList _list891 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.group_names = new ArrayList(_list891.size); - for (int _i892 = 0; _i892 < _list891.size; ++_i892) + org.apache.thrift.protocol.TList _list899 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.group_names = new ArrayList(_list899.size); + for (int _i900 = 0; _i900 < _list899.size; ++_i900) { - String _elem893; // required - _elem893 = iprot.readString(); - struct.group_names.add(_elem893); + String _elem901; // required + _elem901 = iprot.readString(); + struct.group_names.add(_elem901); } } struct.setGroup_namesIsSet(true); @@ -119908,14 +120064,14 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list894 = iprot.readListBegin(); - struct.success = new ArrayList(_list894.size); - for (int _i895 = 0; _i895 < _list894.size; ++_i895) + org.apache.thrift.protocol.TList _list902 = iprot.readListBegin(); + struct.success = new ArrayList(_list902.size); + for (int _i903 = 0; _i903 < _list902.size; ++_i903) { - HiveObjectPrivilege _elem896; // required - _elem896 = new HiveObjectPrivilege(); - _elem896.read(iprot); - struct.success.add(_elem896); + HiveObjectPrivilege _elem904; // required + _elem904 = new HiveObjectPrivilege(); + _elem904.read(iprot); + struct.success.add(_elem904); } iprot.readListEnd(); } @@ -119950,9 +120106,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size())); - for (HiveObjectPrivilege _iter897 : struct.success) + for (HiveObjectPrivilege _iter905 : struct.success) { - _iter897.write(oprot); + _iter905.write(oprot); } oprot.writeListEnd(); } @@ -119991,9 +120147,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (HiveObjectPrivilege _iter898 : struct.success) + for (HiveObjectPrivilege _iter906 : struct.success) { - _iter898.write(oprot); + _iter906.write(oprot); } } } @@ -120008,14 +120164,14 @@ BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list899 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); - struct.success = new ArrayList(_list899.size); - for (int _i900 = 0; _i900 < _list899.size; ++_i900) + org.apache.thrift.protocol.TList _list907 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32()); + struct.success = new ArrayList(_list907.size); + for (int _i908 = 0; _i908 < _list907.size; ++_i908) { - HiveObjectPrivilege _elem901; // required - _elem901 = new HiveObjectPrivilege(); - _elem901.read(iprot); - struct.success.add(_elem901); + HiveObjectPrivilege _elem909; // required + _elem909 = new HiveObjectPrivilege(); + _elem909.read(iprot); + struct.success.add(_elem909); } } struct.setSuccessIsSet(true); @@ -122920,13 +123076,13 @@ case 2: // GROUP_NAMES if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list902 = iprot.readListBegin(); - struct.group_names = new ArrayList(_list902.size); - for (int _i903 = 0; _i903 < _list902.size; ++_i903) + org.apache.thrift.protocol.TList _list910 = iprot.readListBegin(); + struct.group_names = new ArrayList(_list910.size); + for (int _i911 = 0; _i911 < _list910.size; ++_i911) { - String _elem904; // required - _elem904 = iprot.readString(); - struct.group_names.add(_elem904); + String _elem912; // required + _elem912 = iprot.readString(); + struct.group_names.add(_elem912); } iprot.readListEnd(); } @@ -122957,9 +123113,9 @@ oprot.writeFieldBegin(GROUP_NAMES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.group_names.size())); - for (String _iter905 : struct.group_names) + for (String _iter913 : struct.group_names) { - oprot.writeString(_iter905); + oprot.writeString(_iter913); } oprot.writeListEnd(); } @@ -122996,9 +123152,9 @@ if (struct.isSetGroup_names()) { { oprot.writeI32(struct.group_names.size()); - for (String _iter906 : struct.group_names) + for (String _iter914 : struct.group_names) { - oprot.writeString(_iter906); + oprot.writeString(_iter914); } } } @@ -123014,13 +123170,13 @@ } if (incoming.get(1)) { { - org.apache.thrift.protocol.TList _list907 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.group_names = new ArrayList(_list907.size); - for (int _i908 = 0; _i908 < _list907.size; ++_i908) + org.apache.thrift.protocol.TList _list915 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.group_names = new ArrayList(_list915.size); + for (int _i916 = 0; _i916 < _list915.size; ++_i916) { - String _elem909; // required - _elem909 = iprot.readString(); - struct.group_names.add(_elem909); + String _elem917; // required + _elem917 = iprot.readString(); + struct.group_names.add(_elem917); } } struct.setGroup_namesIsSet(true); @@ -123426,13 +123582,13 @@ case 0: // SUCCESS if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list910 = iprot.readListBegin(); - struct.success = new ArrayList(_list910.size); - for (int _i911 = 0; _i911 < _list910.size; ++_i911) + org.apache.thrift.protocol.TList _list918 = iprot.readListBegin(); + struct.success = new ArrayList(_list918.size); + for (int _i919 = 0; _i919 < _list918.size; ++_i919) { - String _elem912; // required - _elem912 = iprot.readString(); - struct.success.add(_elem912); + String _elem920; // required + _elem920 = iprot.readString(); + struct.success.add(_elem920); } iprot.readListEnd(); } @@ -123467,9 +123623,9 @@ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size())); - for (String _iter913 : struct.success) + for (String _iter921 : struct.success) { - oprot.writeString(_iter913); + oprot.writeString(_iter921); } oprot.writeListEnd(); } @@ -123508,9 +123664,9 @@ if (struct.isSetSuccess()) { { oprot.writeI32(struct.success.size()); - for (String _iter914 : struct.success) + for (String _iter922 : struct.success) { - oprot.writeString(_iter914); + oprot.writeString(_iter922); } } } @@ -123525,13 +123681,13 @@ BitSet incoming = iprot.readBitSet(2); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list915 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.success = new ArrayList(_list915.size); - for (int _i916 = 0; _i916 < _list915.size; ++_i916) + org.apache.thrift.protocol.TList _list923 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.success = new ArrayList(_list923.size); + for (int _i924 = 0; _i924 < _list923.size; ++_i924) { - String _elem917; // required - _elem917 = iprot.readString(); - struct.success.add(_elem917); + String _elem925; // required + _elem925 = iprot.readString(); + struct.success.add(_elem925); } } struct.setSuccessIsSet(true); @@ -136041,4 +136197,1339 @@ } + public static class getNextNotification_args 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("getNextNotification_args"); + + private static final org.apache.thrift.protocol.TField RQST_FIELD_DESC = new org.apache.thrift.protocol.TField("rqst", org.apache.thrift.protocol.TType.STRUCT, (short)1); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new getNextNotification_argsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new getNextNotification_argsTupleSchemeFactory()); + } + + private NotificationEventRequest rqst; // 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 { + RQST((short)1, "rqst"); + + 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: // RQST + return RQST; + 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.RQST, new org.apache.thrift.meta_data.FieldMetaData("rqst", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NotificationEventRequest.class))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getNextNotification_args.class, metaDataMap); + } + + public getNextNotification_args() { + } + + public getNextNotification_args( + NotificationEventRequest rqst) + { + this(); + this.rqst = rqst; + } + + /** + * Performs a deep copy on other. + */ + public getNextNotification_args(getNextNotification_args other) { + if (other.isSetRqst()) { + this.rqst = new NotificationEventRequest(other.rqst); + } + } + + public getNextNotification_args deepCopy() { + return new getNextNotification_args(this); + } + + @Override + public void clear() { + this.rqst = null; + } + + public NotificationEventRequest getRqst() { + return this.rqst; + } + + public void setRqst(NotificationEventRequest rqst) { + this.rqst = rqst; + } + + public void unsetRqst() { + this.rqst = null; + } + + /** Returns true if field rqst is set (has been assigned a value) and false otherwise */ + public boolean isSetRqst() { + return this.rqst != null; + } + + public void setRqstIsSet(boolean value) { + if (!value) { + this.rqst = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case RQST: + if (value == null) { + unsetRqst(); + } else { + setRqst((NotificationEventRequest)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case RQST: + return getRqst(); + + } + 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 RQST: + return isSetRqst(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof getNextNotification_args) + return this.equals((getNextNotification_args)that); + return false; + } + + public boolean equals(getNextNotification_args that) { + if (that == null) + return false; + + boolean this_present_rqst = true && this.isSetRqst(); + boolean that_present_rqst = true && that.isSetRqst(); + if (this_present_rqst || that_present_rqst) { + if (!(this_present_rqst && that_present_rqst)) + return false; + if (!this.rqst.equals(that.rqst)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_rqst = true && (isSetRqst()); + builder.append(present_rqst); + if (present_rqst) + builder.append(rqst); + + return builder.toHashCode(); + } + + public int compareTo(getNextNotification_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getNextNotification_args typedOther = (getNextNotification_args)other; + + lastComparison = Boolean.valueOf(isSetRqst()).compareTo(typedOther.isSetRqst()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetRqst()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rqst, typedOther.rqst); + 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 { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("getNextNotification_args("); + boolean first = true; + + sb.append("rqst:"); + if (this.rqst == null) { + sb.append("null"); + } else { + sb.append(this.rqst); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + if (rqst != null) { + rqst.validate(); + } + } + + 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); + } + } + + private static class getNextNotification_argsStandardSchemeFactory implements SchemeFactory { + public getNextNotification_argsStandardScheme getScheme() { + return new getNextNotification_argsStandardScheme(); + } + } + + private static class getNextNotification_argsStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, getNextNotification_args struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // RQST + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.rqst = new NotificationEventRequest(); + struct.rqst.read(iprot); + struct.setRqstIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, getNextNotification_args struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.rqst != null) { + oprot.writeFieldBegin(RQST_FIELD_DESC); + struct.rqst.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class getNextNotification_argsTupleSchemeFactory implements SchemeFactory { + public getNextNotification_argsTupleScheme getScheme() { + return new getNextNotification_argsTupleScheme(); + } + } + + private static class getNextNotification_argsTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, getNextNotification_args struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetRqst()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetRqst()) { + struct.rqst.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, getNextNotification_args struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.rqst = new NotificationEventRequest(); + struct.rqst.read(iprot); + struct.setRqstIsSet(true); + } + } + } + + } + + public static class getNextNotification_result 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("getNextNotification_result"); + + private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new getNextNotification_resultStandardSchemeFactory()); + schemes.put(TupleScheme.class, new getNextNotification_resultTupleSchemeFactory()); + } + + private NotificationEventResponse success; // 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 { + SUCCESS((short)0, "success"); + + 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 0: // SUCCESS + return SUCCESS; + 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.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NotificationEventResponse.class))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getNextNotification_result.class, metaDataMap); + } + + public getNextNotification_result() { + } + + public getNextNotification_result( + NotificationEventResponse success) + { + this(); + this.success = success; + } + + /** + * Performs a deep copy on other. + */ + public getNextNotification_result(getNextNotification_result other) { + if (other.isSetSuccess()) { + this.success = new NotificationEventResponse(other.success); + } + } + + public getNextNotification_result deepCopy() { + return new getNextNotification_result(this); + } + + @Override + public void clear() { + this.success = null; + } + + public NotificationEventResponse getSuccess() { + return this.success; + } + + public void setSuccess(NotificationEventResponse success) { + this.success = success; + } + + public void unsetSuccess() { + this.success = null; + } + + /** Returns true if field success is set (has been assigned a value) and false otherwise */ + public boolean isSetSuccess() { + return this.success != null; + } + + public void setSuccessIsSet(boolean value) { + if (!value) { + this.success = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SUCCESS: + if (value == null) { + unsetSuccess(); + } else { + setSuccess((NotificationEventResponse)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SUCCESS: + return getSuccess(); + + } + 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 SUCCESS: + return isSetSuccess(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof getNextNotification_result) + return this.equals((getNextNotification_result)that); + return false; + } + + public boolean equals(getNextNotification_result that) { + if (that == null) + return false; + + boolean this_present_success = true && this.isSetSuccess(); + boolean that_present_success = true && that.isSetSuccess(); + if (this_present_success || that_present_success) { + if (!(this_present_success && that_present_success)) + return false; + if (!this.success.equals(that.success)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true && (isSetSuccess()); + builder.append(present_success); + if (present_success) + builder.append(success); + + return builder.toHashCode(); + } + + public int compareTo(getNextNotification_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getNextNotification_result typedOther = (getNextNotification_result)other; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSuccess()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success); + 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 { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("getNextNotification_result("); + boolean first = true; + + sb.append("success:"); + if (this.success == null) { + sb.append("null"); + } else { + sb.append(this.success); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + if (success != null) { + success.validate(); + } + } + + 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); + } + } + + private static class getNextNotification_resultStandardSchemeFactory implements SchemeFactory { + public getNextNotification_resultStandardScheme getScheme() { + return new getNextNotification_resultStandardScheme(); + } + } + + private static class getNextNotification_resultStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, getNextNotification_result struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 0: // SUCCESS + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.success = new NotificationEventResponse(); + struct.success.read(iprot); + struct.setSuccessIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, getNextNotification_result struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.success != null) { + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); + struct.success.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class getNextNotification_resultTupleSchemeFactory implements SchemeFactory { + public getNextNotification_resultTupleScheme getScheme() { + return new getNextNotification_resultTupleScheme(); + } + } + + private static class getNextNotification_resultTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, getNextNotification_result struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSuccess()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetSuccess()) { + struct.success.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, getNextNotification_result struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.success = new NotificationEventResponse(); + struct.success.read(iprot); + struct.setSuccessIsSet(true); + } + } + } + + } + + public static class getCurrentNotificationEventId_args 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("getCurrentNotificationEventId_args"); + + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new getCurrentNotificationEventId_argsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new getCurrentNotificationEventId_argsTupleSchemeFactory()); + } + + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + public enum _Fields implements org.apache.thrift.TFieldIdEnum { +; + + 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) { + 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; + } + } + 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); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getCurrentNotificationEventId_args.class, metaDataMap); + } + + public getCurrentNotificationEventId_args() { + } + + /** + * Performs a deep copy on other. + */ + public getCurrentNotificationEventId_args(getCurrentNotificationEventId_args other) { + } + + public getCurrentNotificationEventId_args deepCopy() { + return new getCurrentNotificationEventId_args(this); + } + + @Override + public void clear() { + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + } + 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) { + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof getCurrentNotificationEventId_args) + return this.equals((getCurrentNotificationEventId_args)that); + return false; + } + + public boolean equals(getCurrentNotificationEventId_args that) { + if (that == null) + return false; + + return true; + } + + @Override + public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + return builder.toHashCode(); + } + + public int compareTo(getCurrentNotificationEventId_args other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getCurrentNotificationEventId_args typedOther = (getCurrentNotificationEventId_args)other; + + 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 { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("getCurrentNotificationEventId_args("); + boolean first = true; + + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + 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); + } + } + + private static class getCurrentNotificationEventId_argsStandardSchemeFactory implements SchemeFactory { + public getCurrentNotificationEventId_argsStandardScheme getScheme() { + return new getCurrentNotificationEventId_argsStandardScheme(); + } + } + + private static class getCurrentNotificationEventId_argsStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, getCurrentNotificationEventId_args struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, getCurrentNotificationEventId_args struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class getCurrentNotificationEventId_argsTupleSchemeFactory implements SchemeFactory { + public getCurrentNotificationEventId_argsTupleScheme getScheme() { + return new getCurrentNotificationEventId_argsTupleScheme(); + } + } + + private static class getCurrentNotificationEventId_argsTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, getCurrentNotificationEventId_args struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, getCurrentNotificationEventId_args struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + } + } + + } + + public static class getCurrentNotificationEventId_result 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("getCurrentNotificationEventId_result"); + + private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0); + + private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new getCurrentNotificationEventId_resultStandardSchemeFactory()); + schemes.put(TupleScheme.class, new getCurrentNotificationEventId_resultTupleSchemeFactory()); + } + + private CurrentNotificationEventId success; // 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 { + SUCCESS((short)0, "success"); + + 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 0: // SUCCESS + return SUCCESS; + 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.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CurrentNotificationEventId.class))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getCurrentNotificationEventId_result.class, metaDataMap); + } + + public getCurrentNotificationEventId_result() { + } + + public getCurrentNotificationEventId_result( + CurrentNotificationEventId success) + { + this(); + this.success = success; + } + + /** + * Performs a deep copy on other. + */ + public getCurrentNotificationEventId_result(getCurrentNotificationEventId_result other) { + if (other.isSetSuccess()) { + this.success = new CurrentNotificationEventId(other.success); + } + } + + public getCurrentNotificationEventId_result deepCopy() { + return new getCurrentNotificationEventId_result(this); + } + + @Override + public void clear() { + this.success = null; + } + + public CurrentNotificationEventId getSuccess() { + return this.success; + } + + public void setSuccess(CurrentNotificationEventId success) { + this.success = success; + } + + public void unsetSuccess() { + this.success = null; + } + + /** Returns true if field success is set (has been assigned a value) and false otherwise */ + public boolean isSetSuccess() { + return this.success != null; + } + + public void setSuccessIsSet(boolean value) { + if (!value) { + this.success = null; + } + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case SUCCESS: + if (value == null) { + unsetSuccess(); + } else { + setSuccess((CurrentNotificationEventId)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case SUCCESS: + return getSuccess(); + + } + 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 SUCCESS: + return isSetSuccess(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof getCurrentNotificationEventId_result) + return this.equals((getCurrentNotificationEventId_result)that); + return false; + } + + public boolean equals(getCurrentNotificationEventId_result that) { + if (that == null) + return false; + + boolean this_present_success = true && this.isSetSuccess(); + boolean that_present_success = true && that.isSetSuccess(); + if (this_present_success || that_present_success) { + if (!(this_present_success && that_present_success)) + return false; + if (!this.success.equals(that.success)) + return false; + } + + return true; + } + + @Override + public int hashCode() { + HashCodeBuilder builder = new HashCodeBuilder(); + + boolean present_success = true && (isSetSuccess()); + builder.append(present_success); + if (present_success) + builder.append(success); + + return builder.toHashCode(); + } + + public int compareTo(getCurrentNotificationEventId_result other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + getCurrentNotificationEventId_result typedOther = (getCurrentNotificationEventId_result)other; + + lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(typedOther.isSetSuccess()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetSuccess()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, typedOther.success); + 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 { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("getCurrentNotificationEventId_result("); + boolean first = true; + + sb.append("success:"); + if (this.success == null) { + sb.append("null"); + } else { + sb.append(this.success); + } + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + if (success != null) { + success.validate(); + } + } + + 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); + } + } + + private static class getCurrentNotificationEventId_resultStandardSchemeFactory implements SchemeFactory { + public getCurrentNotificationEventId_resultStandardScheme getScheme() { + return new getCurrentNotificationEventId_resultStandardScheme(); + } + } + + private static class getCurrentNotificationEventId_resultStandardScheme extends StandardScheme { + + public void read(org.apache.thrift.protocol.TProtocol iprot, getCurrentNotificationEventId_result struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 0: // SUCCESS + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.success = new CurrentNotificationEventId(); + struct.success.read(iprot); + struct.setSuccessIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, getCurrentNotificationEventId_result struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + if (struct.success != null) { + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); + struct.success.write(oprot); + oprot.writeFieldEnd(); + } + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class getCurrentNotificationEventId_resultTupleSchemeFactory implements SchemeFactory { + public getCurrentNotificationEventId_resultTupleScheme getScheme() { + return new getCurrentNotificationEventId_resultTupleScheme(); + } + } + + private static class getCurrentNotificationEventId_resultTupleScheme extends TupleScheme { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, getCurrentNotificationEventId_result struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetSuccess()) { + optionals.set(0); + } + oprot.writeBitSet(optionals, 1); + if (struct.isSetSuccess()) { + struct.success.write(oprot); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, getCurrentNotificationEventId_result struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(1); + if (incoming.get(0)) { + struct.success = new CurrentNotificationEventId(); + struct.success.read(iprot); + struct.setSuccessIsSet(true); + } + } + } + + } + } Index: metastore/src/gen/thrift/gen-php/metastore/ThriftHiveMetastore.php =================================================================== --- metastore/src/gen/thrift/gen-php/metastore/ThriftHiveMetastore.php (revision 1650429) +++ metastore/src/gen/thrift/gen-php/metastore/ThriftHiveMetastore.php (working copy) @@ -133,6 +133,8 @@ public function heartbeat_txn_range(\metastore\HeartbeatTxnRangeRequest $txns); public function compact(\metastore\CompactionRequest $rqst); public function show_compact(\metastore\ShowCompactRequest $rqst); + public function getNextNotification(\metastore\NotificationEventRequest $rqst); + public function getCurrentNotificationEventId(); } class ThriftHiveMetastoreClient extends \FacebookServiceClient implements \metastore\ThriftHiveMetastoreIf { @@ -6884,6 +6886,107 @@ throw new \Exception("show_compact failed: unknown result"); } + public function getNextNotification(\metastore\NotificationEventRequest $rqst) + { + $this->send_getNextNotification($rqst); + return $this->recv_getNextNotification(); + } + + public function send_getNextNotification(\metastore\NotificationEventRequest $rqst) + { + $args = new \metastore\ThriftHiveMetastore_getNextNotification_args(); + $args->rqst = $rqst; + $bin_accel = ($this->output_ instanceof TProtocol::$TBINARYPROTOCOLACCELERATED) && function_exists('thrift_protocol_write_binary'); + if ($bin_accel) + { + thrift_protocol_write_binary($this->output_, 'getNextNotification', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite()); + } + else + { + $this->output_->writeMessageBegin('getNextNotification', TMessageType::CALL, $this->seqid_); + $args->write($this->output_); + $this->output_->writeMessageEnd(); + $this->output_->getTransport()->flush(); + } + } + + public function recv_getNextNotification() + { + $bin_accel = ($this->input_ instanceof TProtocol::$TBINARYPROTOCOLACCELERATED) && function_exists('thrift_protocol_read_binary'); + if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\metastore\ThriftHiveMetastore_getNextNotification_result', $this->input_->isStrictRead()); + else + { + $rseqid = 0; + $fname = null; + $mtype = 0; + + $this->input_->readMessageBegin($fname, $mtype, $rseqid); + if ($mtype == TMessageType::EXCEPTION) { + $x = new TApplicationException(); + $x->read($this->input_); + $this->input_->readMessageEnd(); + throw $x; + } + $result = new \metastore\ThriftHiveMetastore_getNextNotification_result(); + $result->read($this->input_); + $this->input_->readMessageEnd(); + } + if ($result->success !== null) { + return $result->success; + } + throw new \Exception("getNextNotification failed: unknown result"); + } + + public function getCurrentNotificationEventId() + { + $this->send_getCurrentNotificationEventId(); + return $this->recv_getCurrentNotificationEventId(); + } + + public function send_getCurrentNotificationEventId() + { + $args = new \metastore\ThriftHiveMetastore_getCurrentNotificationEventId_args(); + $bin_accel = ($this->output_ instanceof TProtocol::$TBINARYPROTOCOLACCELERATED) && function_exists('thrift_protocol_write_binary'); + if ($bin_accel) + { + thrift_protocol_write_binary($this->output_, 'getCurrentNotificationEventId', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite()); + } + else + { + $this->output_->writeMessageBegin('getCurrentNotificationEventId', TMessageType::CALL, $this->seqid_); + $args->write($this->output_); + $this->output_->writeMessageEnd(); + $this->output_->getTransport()->flush(); + } + } + + public function recv_getCurrentNotificationEventId() + { + $bin_accel = ($this->input_ instanceof TProtocol::$TBINARYPROTOCOLACCELERATED) && function_exists('thrift_protocol_read_binary'); + if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\metastore\ThriftHiveMetastore_getCurrentNotificationEventId_result', $this->input_->isStrictRead()); + else + { + $rseqid = 0; + $fname = null; + $mtype = 0; + + $this->input_->readMessageBegin($fname, $mtype, $rseqid); + if ($mtype == TMessageType::EXCEPTION) { + $x = new TApplicationException(); + $x->read($this->input_); + $this->input_->readMessageEnd(); + throw $x; + } + $result = new \metastore\ThriftHiveMetastore_getCurrentNotificationEventId_result(); + $result->read($this->input_); + $this->input_->readMessageEnd(); + } + if ($result->success !== null) { + return $result->success; + } + throw new \Exception("getCurrentNotificationEventId failed: unknown result"); + } + } // HELPER FUNCTIONS AND STRUCTURES @@ -7966,14 +8069,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size437 = 0; - $_etype440 = 0; - $xfer += $input->readListBegin($_etype440, $_size437); - for ($_i441 = 0; $_i441 < $_size437; ++$_i441) + $_size444 = 0; + $_etype447 = 0; + $xfer += $input->readListBegin($_etype447, $_size444); + for ($_i448 = 0; $_i448 < $_size444; ++$_i448) { - $elem442 = null; - $xfer += $input->readString($elem442); - $this->success []= $elem442; + $elem449 = null; + $xfer += $input->readString($elem449); + $this->success []= $elem449; } $xfer += $input->readListEnd(); } else { @@ -8009,9 +8112,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter443) + foreach ($this->success as $iter450) { - $xfer += $output->writeString($iter443); + $xfer += $output->writeString($iter450); } } $output->writeListEnd(); @@ -8136,14 +8239,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size444 = 0; - $_etype447 = 0; - $xfer += $input->readListBegin($_etype447, $_size444); - for ($_i448 = 0; $_i448 < $_size444; ++$_i448) + $_size451 = 0; + $_etype454 = 0; + $xfer += $input->readListBegin($_etype454, $_size451); + for ($_i455 = 0; $_i455 < $_size451; ++$_i455) { - $elem449 = null; - $xfer += $input->readString($elem449); - $this->success []= $elem449; + $elem456 = null; + $xfer += $input->readString($elem456); + $this->success []= $elem456; } $xfer += $input->readListEnd(); } else { @@ -8179,9 +8282,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter450) + foreach ($this->success as $iter457) { - $xfer += $output->writeString($iter450); + $xfer += $output->writeString($iter457); } } $output->writeListEnd(); @@ -9122,18 +9225,18 @@ case 0: if ($ftype == TType::MAP) { $this->success = array(); - $_size451 = 0; - $_ktype452 = 0; - $_vtype453 = 0; - $xfer += $input->readMapBegin($_ktype452, $_vtype453, $_size451); - for ($_i455 = 0; $_i455 < $_size451; ++$_i455) + $_size458 = 0; + $_ktype459 = 0; + $_vtype460 = 0; + $xfer += $input->readMapBegin($_ktype459, $_vtype460, $_size458); + for ($_i462 = 0; $_i462 < $_size458; ++$_i462) { - $key456 = ''; - $val457 = new \metastore\Type(); - $xfer += $input->readString($key456); - $val457 = new \metastore\Type(); - $xfer += $val457->read($input); - $this->success[$key456] = $val457; + $key463 = ''; + $val464 = new \metastore\Type(); + $xfer += $input->readString($key463); + $val464 = new \metastore\Type(); + $xfer += $val464->read($input); + $this->success[$key463] = $val464; } $xfer += $input->readMapEnd(); } else { @@ -9169,10 +9272,10 @@ { $output->writeMapBegin(TType::STRING, TType::STRUCT, count($this->success)); { - foreach ($this->success as $kiter458 => $viter459) + foreach ($this->success as $kiter465 => $viter466) { - $xfer += $output->writeString($kiter458); - $xfer += $viter459->write($output); + $xfer += $output->writeString($kiter465); + $xfer += $viter466->write($output); } } $output->writeMapEnd(); @@ -9358,15 +9461,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size460 = 0; - $_etype463 = 0; - $xfer += $input->readListBegin($_etype463, $_size460); - for ($_i464 = 0; $_i464 < $_size460; ++$_i464) + $_size467 = 0; + $_etype470 = 0; + $xfer += $input->readListBegin($_etype470, $_size467); + for ($_i471 = 0; $_i471 < $_size467; ++$_i471) { - $elem465 = null; - $elem465 = new \metastore\FieldSchema(); - $xfer += $elem465->read($input); - $this->success []= $elem465; + $elem472 = null; + $elem472 = new \metastore\FieldSchema(); + $xfer += $elem472->read($input); + $this->success []= $elem472; } $xfer += $input->readListEnd(); } else { @@ -9418,9 +9521,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter466) + foreach ($this->success as $iter473) { - $xfer += $iter466->write($output); + $xfer += $iter473->write($output); } } $output->writeListEnd(); @@ -9616,15 +9719,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size467 = 0; - $_etype470 = 0; - $xfer += $input->readListBegin($_etype470, $_size467); - for ($_i471 = 0; $_i471 < $_size467; ++$_i471) + $_size474 = 0; + $_etype477 = 0; + $xfer += $input->readListBegin($_etype477, $_size474); + for ($_i478 = 0; $_i478 < $_size474; ++$_i478) { - $elem472 = null; - $elem472 = new \metastore\FieldSchema(); - $xfer += $elem472->read($input); - $this->success []= $elem472; + $elem479 = null; + $elem479 = new \metastore\FieldSchema(); + $xfer += $elem479->read($input); + $this->success []= $elem479; } $xfer += $input->readListEnd(); } else { @@ -9676,9 +9779,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter473) + foreach ($this->success as $iter480) { - $xfer += $iter473->write($output); + $xfer += $iter480->write($output); } } $output->writeListEnd(); @@ -10755,14 +10858,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size474 = 0; - $_etype477 = 0; - $xfer += $input->readListBegin($_etype477, $_size474); - for ($_i478 = 0; $_i478 < $_size474; ++$_i478) + $_size481 = 0; + $_etype484 = 0; + $xfer += $input->readListBegin($_etype484, $_size481); + for ($_i485 = 0; $_i485 < $_size481; ++$_i485) { - $elem479 = null; - $xfer += $input->readString($elem479); - $this->success []= $elem479; + $elem486 = null; + $xfer += $input->readString($elem486); + $this->success []= $elem486; } $xfer += $input->readListEnd(); } else { @@ -10798,9 +10901,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter480) + foreach ($this->success as $iter487) { - $xfer += $output->writeString($iter480); + $xfer += $output->writeString($iter487); } } $output->writeListEnd(); @@ -10947,14 +11050,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size481 = 0; - $_etype484 = 0; - $xfer += $input->readListBegin($_etype484, $_size481); - for ($_i485 = 0; $_i485 < $_size481; ++$_i485) + $_size488 = 0; + $_etype491 = 0; + $xfer += $input->readListBegin($_etype491, $_size488); + for ($_i492 = 0; $_i492 < $_size488; ++$_i492) { - $elem486 = null; - $xfer += $input->readString($elem486); - $this->success []= $elem486; + $elem493 = null; + $xfer += $input->readString($elem493); + $this->success []= $elem493; } $xfer += $input->readListEnd(); } else { @@ -10990,9 +11093,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter487) + foreach ($this->success as $iter494) { - $xfer += $output->writeString($iter487); + $xfer += $output->writeString($iter494); } } $output->writeListEnd(); @@ -11286,14 +11389,14 @@ case 2: if ($ftype == TType::LST) { $this->tbl_names = array(); - $_size488 = 0; - $_etype491 = 0; - $xfer += $input->readListBegin($_etype491, $_size488); - for ($_i492 = 0; $_i492 < $_size488; ++$_i492) + $_size495 = 0; + $_etype498 = 0; + $xfer += $input->readListBegin($_etype498, $_size495); + for ($_i499 = 0; $_i499 < $_size495; ++$_i499) { - $elem493 = null; - $xfer += $input->readString($elem493); - $this->tbl_names []= $elem493; + $elem500 = null; + $xfer += $input->readString($elem500); + $this->tbl_names []= $elem500; } $xfer += $input->readListEnd(); } else { @@ -11326,9 +11429,9 @@ { $output->writeListBegin(TType::STRING, count($this->tbl_names)); { - foreach ($this->tbl_names as $iter494) + foreach ($this->tbl_names as $iter501) { - $xfer += $output->writeString($iter494); + $xfer += $output->writeString($iter501); } } $output->writeListEnd(); @@ -11417,15 +11520,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size495 = 0; - $_etype498 = 0; - $xfer += $input->readListBegin($_etype498, $_size495); - for ($_i499 = 0; $_i499 < $_size495; ++$_i499) + $_size502 = 0; + $_etype505 = 0; + $xfer += $input->readListBegin($_etype505, $_size502); + for ($_i506 = 0; $_i506 < $_size502; ++$_i506) { - $elem500 = null; - $elem500 = new \metastore\Table(); - $xfer += $elem500->read($input); - $this->success []= $elem500; + $elem507 = null; + $elem507 = new \metastore\Table(); + $xfer += $elem507->read($input); + $this->success []= $elem507; } $xfer += $input->readListEnd(); } else { @@ -11477,9 +11580,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter501) + foreach ($this->success as $iter508) { - $xfer += $iter501->write($output); + $xfer += $iter508->write($output); } } $output->writeListEnd(); @@ -11694,14 +11797,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size502 = 0; - $_etype505 = 0; - $xfer += $input->readListBegin($_etype505, $_size502); - for ($_i506 = 0; $_i506 < $_size502; ++$_i506) + $_size509 = 0; + $_etype512 = 0; + $xfer += $input->readListBegin($_etype512, $_size509); + for ($_i513 = 0; $_i513 < $_size509; ++$_i513) { - $elem507 = null; - $xfer += $input->readString($elem507); - $this->success []= $elem507; + $elem514 = null; + $xfer += $input->readString($elem514); + $this->success []= $elem514; } $xfer += $input->readListEnd(); } else { @@ -11753,9 +11856,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter508) + foreach ($this->success as $iter515) { - $xfer += $output->writeString($iter508); + $xfer += $output->writeString($iter515); } } $output->writeListEnd(); @@ -12981,15 +13084,15 @@ case 1: if ($ftype == TType::LST) { $this->new_parts = array(); - $_size509 = 0; - $_etype512 = 0; - $xfer += $input->readListBegin($_etype512, $_size509); - for ($_i513 = 0; $_i513 < $_size509; ++$_i513) + $_size516 = 0; + $_etype519 = 0; + $xfer += $input->readListBegin($_etype519, $_size516); + for ($_i520 = 0; $_i520 < $_size516; ++$_i520) { - $elem514 = null; - $elem514 = new \metastore\Partition(); - $xfer += $elem514->read($input); - $this->new_parts []= $elem514; + $elem521 = null; + $elem521 = new \metastore\Partition(); + $xfer += $elem521->read($input); + $this->new_parts []= $elem521; } $xfer += $input->readListEnd(); } else { @@ -13017,9 +13120,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->new_parts)); { - foreach ($this->new_parts as $iter515) + foreach ($this->new_parts as $iter522) { - $xfer += $iter515->write($output); + $xfer += $iter522->write($output); } } $output->writeListEnd(); @@ -13219,15 +13322,15 @@ case 1: if ($ftype == TType::LST) { $this->new_parts = array(); - $_size516 = 0; - $_etype519 = 0; - $xfer += $input->readListBegin($_etype519, $_size516); - for ($_i520 = 0; $_i520 < $_size516; ++$_i520) + $_size523 = 0; + $_etype526 = 0; + $xfer += $input->readListBegin($_etype526, $_size523); + for ($_i527 = 0; $_i527 < $_size523; ++$_i527) { - $elem521 = null; - $elem521 = new \metastore\PartitionSpec(); - $xfer += $elem521->read($input); - $this->new_parts []= $elem521; + $elem528 = null; + $elem528 = new \metastore\PartitionSpec(); + $xfer += $elem528->read($input); + $this->new_parts []= $elem528; } $xfer += $input->readListEnd(); } else { @@ -13255,9 +13358,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->new_parts)); { - foreach ($this->new_parts as $iter522) + foreach ($this->new_parts as $iter529) { - $xfer += $iter522->write($output); + $xfer += $iter529->write($output); } } $output->writeListEnd(); @@ -13486,14 +13589,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size523 = 0; - $_etype526 = 0; - $xfer += $input->readListBegin($_etype526, $_size523); - for ($_i527 = 0; $_i527 < $_size523; ++$_i527) + $_size530 = 0; + $_etype533 = 0; + $xfer += $input->readListBegin($_etype533, $_size530); + for ($_i534 = 0; $_i534 < $_size530; ++$_i534) { - $elem528 = null; - $xfer += $input->readString($elem528); - $this->part_vals []= $elem528; + $elem535 = null; + $xfer += $input->readString($elem535); + $this->part_vals []= $elem535; } $xfer += $input->readListEnd(); } else { @@ -13531,9 +13634,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter529) + foreach ($this->part_vals as $iter536) { - $xfer += $output->writeString($iter529); + $xfer += $output->writeString($iter536); } } $output->writeListEnd(); @@ -13996,14 +14099,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size530 = 0; - $_etype533 = 0; - $xfer += $input->readListBegin($_etype533, $_size530); - for ($_i534 = 0; $_i534 < $_size530; ++$_i534) + $_size537 = 0; + $_etype540 = 0; + $xfer += $input->readListBegin($_etype540, $_size537); + for ($_i541 = 0; $_i541 < $_size537; ++$_i541) { - $elem535 = null; - $xfer += $input->readString($elem535); - $this->part_vals []= $elem535; + $elem542 = null; + $xfer += $input->readString($elem542); + $this->part_vals []= $elem542; } $xfer += $input->readListEnd(); } else { @@ -14049,9 +14152,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter536) + foreach ($this->part_vals as $iter543) { - $xfer += $output->writeString($iter536); + $xfer += $output->writeString($iter543); } } $output->writeListEnd(); @@ -14836,14 +14939,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size537 = 0; - $_etype540 = 0; - $xfer += $input->readListBegin($_etype540, $_size537); - for ($_i541 = 0; $_i541 < $_size537; ++$_i541) + $_size544 = 0; + $_etype547 = 0; + $xfer += $input->readListBegin($_etype547, $_size544); + for ($_i548 = 0; $_i548 < $_size544; ++$_i548) { - $elem542 = null; - $xfer += $input->readString($elem542); - $this->part_vals []= $elem542; + $elem549 = null; + $xfer += $input->readString($elem549); + $this->part_vals []= $elem549; } $xfer += $input->readListEnd(); } else { @@ -14888,9 +14991,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter543) + foreach ($this->part_vals as $iter550) { - $xfer += $output->writeString($iter543); + $xfer += $output->writeString($iter550); } } $output->writeListEnd(); @@ -15119,14 +15222,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size544 = 0; - $_etype547 = 0; - $xfer += $input->readListBegin($_etype547, $_size544); - for ($_i548 = 0; $_i548 < $_size544; ++$_i548) + $_size551 = 0; + $_etype554 = 0; + $xfer += $input->readListBegin($_etype554, $_size551); + for ($_i555 = 0; $_i555 < $_size551; ++$_i555) { - $elem549 = null; - $xfer += $input->readString($elem549); - $this->part_vals []= $elem549; + $elem556 = null; + $xfer += $input->readString($elem556); + $this->part_vals []= $elem556; } $xfer += $input->readListEnd(); } else { @@ -15179,9 +15282,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter550) + foreach ($this->part_vals as $iter557) { - $xfer += $output->writeString($iter550); + $xfer += $output->writeString($iter557); } } $output->writeListEnd(); @@ -16120,14 +16223,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size551 = 0; - $_etype554 = 0; - $xfer += $input->readListBegin($_etype554, $_size551); - for ($_i555 = 0; $_i555 < $_size551; ++$_i555) + $_size558 = 0; + $_etype561 = 0; + $xfer += $input->readListBegin($_etype561, $_size558); + for ($_i562 = 0; $_i562 < $_size558; ++$_i562) { - $elem556 = null; - $xfer += $input->readString($elem556); - $this->part_vals []= $elem556; + $elem563 = null; + $xfer += $input->readString($elem563); + $this->part_vals []= $elem563; } $xfer += $input->readListEnd(); } else { @@ -16165,9 +16268,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter557) + foreach ($this->part_vals as $iter564) { - $xfer += $output->writeString($iter557); + $xfer += $output->writeString($iter564); } } $output->writeListEnd(); @@ -16385,17 +16488,17 @@ case 1: if ($ftype == TType::MAP) { $this->partitionSpecs = array(); - $_size558 = 0; - $_ktype559 = 0; - $_vtype560 = 0; - $xfer += $input->readMapBegin($_ktype559, $_vtype560, $_size558); - for ($_i562 = 0; $_i562 < $_size558; ++$_i562) + $_size565 = 0; + $_ktype566 = 0; + $_vtype567 = 0; + $xfer += $input->readMapBegin($_ktype566, $_vtype567, $_size565); + for ($_i569 = 0; $_i569 < $_size565; ++$_i569) { - $key563 = ''; - $val564 = ''; - $xfer += $input->readString($key563); - $xfer += $input->readString($val564); - $this->partitionSpecs[$key563] = $val564; + $key570 = ''; + $val571 = ''; + $xfer += $input->readString($key570); + $xfer += $input->readString($val571); + $this->partitionSpecs[$key570] = $val571; } $xfer += $input->readMapEnd(); } else { @@ -16451,10 +16554,10 @@ { $output->writeMapBegin(TType::STRING, TType::STRING, count($this->partitionSpecs)); { - foreach ($this->partitionSpecs as $kiter565 => $viter566) + foreach ($this->partitionSpecs as $kiter572 => $viter573) { - $xfer += $output->writeString($kiter565); - $xfer += $output->writeString($viter566); + $xfer += $output->writeString($kiter572); + $xfer += $output->writeString($viter573); } } $output->writeMapEnd(); @@ -16750,14 +16853,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size567 = 0; - $_etype570 = 0; - $xfer += $input->readListBegin($_etype570, $_size567); - for ($_i571 = 0; $_i571 < $_size567; ++$_i571) + $_size574 = 0; + $_etype577 = 0; + $xfer += $input->readListBegin($_etype577, $_size574); + for ($_i578 = 0; $_i578 < $_size574; ++$_i578) { - $elem572 = null; - $xfer += $input->readString($elem572); - $this->part_vals []= $elem572; + $elem579 = null; + $xfer += $input->readString($elem579); + $this->part_vals []= $elem579; } $xfer += $input->readListEnd(); } else { @@ -16774,14 +16877,14 @@ case 5: if ($ftype == TType::LST) { $this->group_names = array(); - $_size573 = 0; - $_etype576 = 0; - $xfer += $input->readListBegin($_etype576, $_size573); - for ($_i577 = 0; $_i577 < $_size573; ++$_i577) + $_size580 = 0; + $_etype583 = 0; + $xfer += $input->readListBegin($_etype583, $_size580); + for ($_i584 = 0; $_i584 < $_size580; ++$_i584) { - $elem578 = null; - $xfer += $input->readString($elem578); - $this->group_names []= $elem578; + $elem585 = null; + $xfer += $input->readString($elem585); + $this->group_names []= $elem585; } $xfer += $input->readListEnd(); } else { @@ -16819,9 +16922,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter579) + foreach ($this->part_vals as $iter586) { - $xfer += $output->writeString($iter579); + $xfer += $output->writeString($iter586); } } $output->writeListEnd(); @@ -16841,9 +16944,9 @@ { $output->writeListBegin(TType::STRING, count($this->group_names)); { - foreach ($this->group_names as $iter580) + foreach ($this->group_names as $iter587) { - $xfer += $output->writeString($iter580); + $xfer += $output->writeString($iter587); } } $output->writeListEnd(); @@ -17389,15 +17492,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size581 = 0; - $_etype584 = 0; - $xfer += $input->readListBegin($_etype584, $_size581); - for ($_i585 = 0; $_i585 < $_size581; ++$_i585) + $_size588 = 0; + $_etype591 = 0; + $xfer += $input->readListBegin($_etype591, $_size588); + for ($_i592 = 0; $_i592 < $_size588; ++$_i592) { - $elem586 = null; - $elem586 = new \metastore\Partition(); - $xfer += $elem586->read($input); - $this->success []= $elem586; + $elem593 = null; + $elem593 = new \metastore\Partition(); + $xfer += $elem593->read($input); + $this->success []= $elem593; } $xfer += $input->readListEnd(); } else { @@ -17441,9 +17544,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter587) + foreach ($this->success as $iter594) { - $xfer += $iter587->write($output); + $xfer += $iter594->write($output); } } $output->writeListEnd(); @@ -17574,14 +17677,14 @@ case 5: if ($ftype == TType::LST) { $this->group_names = array(); - $_size588 = 0; - $_etype591 = 0; - $xfer += $input->readListBegin($_etype591, $_size588); - for ($_i592 = 0; $_i592 < $_size588; ++$_i592) + $_size595 = 0; + $_etype598 = 0; + $xfer += $input->readListBegin($_etype598, $_size595); + for ($_i599 = 0; $_i599 < $_size595; ++$_i599) { - $elem593 = null; - $xfer += $input->readString($elem593); - $this->group_names []= $elem593; + $elem600 = null; + $xfer += $input->readString($elem600); + $this->group_names []= $elem600; } $xfer += $input->readListEnd(); } else { @@ -17629,9 +17732,9 @@ { $output->writeListBegin(TType::STRING, count($this->group_names)); { - foreach ($this->group_names as $iter594) + foreach ($this->group_names as $iter601) { - $xfer += $output->writeString($iter594); + $xfer += $output->writeString($iter601); } } $output->writeListEnd(); @@ -17711,15 +17814,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size595 = 0; - $_etype598 = 0; - $xfer += $input->readListBegin($_etype598, $_size595); - for ($_i599 = 0; $_i599 < $_size595; ++$_i599) + $_size602 = 0; + $_etype605 = 0; + $xfer += $input->readListBegin($_etype605, $_size602); + for ($_i606 = 0; $_i606 < $_size602; ++$_i606) { - $elem600 = null; - $elem600 = new \metastore\Partition(); - $xfer += $elem600->read($input); - $this->success []= $elem600; + $elem607 = null; + $elem607 = new \metastore\Partition(); + $xfer += $elem607->read($input); + $this->success []= $elem607; } $xfer += $input->readListEnd(); } else { @@ -17763,9 +17866,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter601) + foreach ($this->success as $iter608) { - $xfer += $iter601->write($output); + $xfer += $iter608->write($output); } } $output->writeListEnd(); @@ -17967,15 +18070,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size602 = 0; - $_etype605 = 0; - $xfer += $input->readListBegin($_etype605, $_size602); - for ($_i606 = 0; $_i606 < $_size602; ++$_i606) + $_size609 = 0; + $_etype612 = 0; + $xfer += $input->readListBegin($_etype612, $_size609); + for ($_i613 = 0; $_i613 < $_size609; ++$_i613) { - $elem607 = null; - $elem607 = new \metastore\PartitionSpec(); - $xfer += $elem607->read($input); - $this->success []= $elem607; + $elem614 = null; + $elem614 = new \metastore\PartitionSpec(); + $xfer += $elem614->read($input); + $this->success []= $elem614; } $xfer += $input->readListEnd(); } else { @@ -18019,9 +18122,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter608) + foreach ($this->success as $iter615) { - $xfer += $iter608->write($output); + $xfer += $iter615->write($output); } } $output->writeListEnd(); @@ -18213,14 +18316,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size609 = 0; - $_etype612 = 0; - $xfer += $input->readListBegin($_etype612, $_size609); - for ($_i613 = 0; $_i613 < $_size609; ++$_i613) + $_size616 = 0; + $_etype619 = 0; + $xfer += $input->readListBegin($_etype619, $_size616); + for ($_i620 = 0; $_i620 < $_size616; ++$_i620) { - $elem614 = null; - $xfer += $input->readString($elem614); - $this->success []= $elem614; + $elem621 = null; + $xfer += $input->readString($elem621); + $this->success []= $elem621; } $xfer += $input->readListEnd(); } else { @@ -18256,9 +18359,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter615) + foreach ($this->success as $iter622) { - $xfer += $output->writeString($iter615); + $xfer += $output->writeString($iter622); } } $output->writeListEnd(); @@ -18362,14 +18465,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size616 = 0; - $_etype619 = 0; - $xfer += $input->readListBegin($_etype619, $_size616); - for ($_i620 = 0; $_i620 < $_size616; ++$_i620) + $_size623 = 0; + $_etype626 = 0; + $xfer += $input->readListBegin($_etype626, $_size623); + for ($_i627 = 0; $_i627 < $_size623; ++$_i627) { - $elem621 = null; - $xfer += $input->readString($elem621); - $this->part_vals []= $elem621; + $elem628 = null; + $xfer += $input->readString($elem628); + $this->part_vals []= $elem628; } $xfer += $input->readListEnd(); } else { @@ -18414,9 +18517,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter622) + foreach ($this->part_vals as $iter629) { - $xfer += $output->writeString($iter622); + $xfer += $output->writeString($iter629); } } $output->writeListEnd(); @@ -18501,15 +18604,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size623 = 0; - $_etype626 = 0; - $xfer += $input->readListBegin($_etype626, $_size623); - for ($_i627 = 0; $_i627 < $_size623; ++$_i627) + $_size630 = 0; + $_etype633 = 0; + $xfer += $input->readListBegin($_etype633, $_size630); + for ($_i634 = 0; $_i634 < $_size630; ++$_i634) { - $elem628 = null; - $elem628 = new \metastore\Partition(); - $xfer += $elem628->read($input); - $this->success []= $elem628; + $elem635 = null; + $elem635 = new \metastore\Partition(); + $xfer += $elem635->read($input); + $this->success []= $elem635; } $xfer += $input->readListEnd(); } else { @@ -18553,9 +18656,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter629) + foreach ($this->success as $iter636) { - $xfer += $iter629->write($output); + $xfer += $iter636->write($output); } } $output->writeListEnd(); @@ -18684,14 +18787,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size630 = 0; - $_etype633 = 0; - $xfer += $input->readListBegin($_etype633, $_size630); - for ($_i634 = 0; $_i634 < $_size630; ++$_i634) + $_size637 = 0; + $_etype640 = 0; + $xfer += $input->readListBegin($_etype640, $_size637); + for ($_i641 = 0; $_i641 < $_size637; ++$_i641) { - $elem635 = null; - $xfer += $input->readString($elem635); - $this->part_vals []= $elem635; + $elem642 = null; + $xfer += $input->readString($elem642); + $this->part_vals []= $elem642; } $xfer += $input->readListEnd(); } else { @@ -18715,14 +18818,14 @@ case 6: if ($ftype == TType::LST) { $this->group_names = array(); - $_size636 = 0; - $_etype639 = 0; - $xfer += $input->readListBegin($_etype639, $_size636); - for ($_i640 = 0; $_i640 < $_size636; ++$_i640) + $_size643 = 0; + $_etype646 = 0; + $xfer += $input->readListBegin($_etype646, $_size643); + for ($_i647 = 0; $_i647 < $_size643; ++$_i647) { - $elem641 = null; - $xfer += $input->readString($elem641); - $this->group_names []= $elem641; + $elem648 = null; + $xfer += $input->readString($elem648); + $this->group_names []= $elem648; } $xfer += $input->readListEnd(); } else { @@ -18760,9 +18863,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter642) + foreach ($this->part_vals as $iter649) { - $xfer += $output->writeString($iter642); + $xfer += $output->writeString($iter649); } } $output->writeListEnd(); @@ -18787,9 +18890,9 @@ { $output->writeListBegin(TType::STRING, count($this->group_names)); { - foreach ($this->group_names as $iter643) + foreach ($this->group_names as $iter650) { - $xfer += $output->writeString($iter643); + $xfer += $output->writeString($iter650); } } $output->writeListEnd(); @@ -18869,15 +18972,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size644 = 0; - $_etype647 = 0; - $xfer += $input->readListBegin($_etype647, $_size644); - for ($_i648 = 0; $_i648 < $_size644; ++$_i648) + $_size651 = 0; + $_etype654 = 0; + $xfer += $input->readListBegin($_etype654, $_size651); + for ($_i655 = 0; $_i655 < $_size651; ++$_i655) { - $elem649 = null; - $elem649 = new \metastore\Partition(); - $xfer += $elem649->read($input); - $this->success []= $elem649; + $elem656 = null; + $elem656 = new \metastore\Partition(); + $xfer += $elem656->read($input); + $this->success []= $elem656; } $xfer += $input->readListEnd(); } else { @@ -18921,9 +19024,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter650) + foreach ($this->success as $iter657) { - $xfer += $iter650->write($output); + $xfer += $iter657->write($output); } } $output->writeListEnd(); @@ -19032,14 +19135,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size651 = 0; - $_etype654 = 0; - $xfer += $input->readListBegin($_etype654, $_size651); - for ($_i655 = 0; $_i655 < $_size651; ++$_i655) + $_size658 = 0; + $_etype661 = 0; + $xfer += $input->readListBegin($_etype661, $_size658); + for ($_i662 = 0; $_i662 < $_size658; ++$_i662) { - $elem656 = null; - $xfer += $input->readString($elem656); - $this->part_vals []= $elem656; + $elem663 = null; + $xfer += $input->readString($elem663); + $this->part_vals []= $elem663; } $xfer += $input->readListEnd(); } else { @@ -19084,9 +19187,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter657) + foreach ($this->part_vals as $iter664) { - $xfer += $output->writeString($iter657); + $xfer += $output->writeString($iter664); } } $output->writeListEnd(); @@ -19170,14 +19273,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size658 = 0; - $_etype661 = 0; - $xfer += $input->readListBegin($_etype661, $_size658); - for ($_i662 = 0; $_i662 < $_size658; ++$_i662) + $_size665 = 0; + $_etype668 = 0; + $xfer += $input->readListBegin($_etype668, $_size665); + for ($_i669 = 0; $_i669 < $_size665; ++$_i669) { - $elem663 = null; - $xfer += $input->readString($elem663); - $this->success []= $elem663; + $elem670 = null; + $xfer += $input->readString($elem670); + $this->success []= $elem670; } $xfer += $input->readListEnd(); } else { @@ -19221,9 +19324,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter664) + foreach ($this->success as $iter671) { - $xfer += $output->writeString($iter664); + $xfer += $output->writeString($iter671); } } $output->writeListEnd(); @@ -19445,15 +19548,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size665 = 0; - $_etype668 = 0; - $xfer += $input->readListBegin($_etype668, $_size665); - for ($_i669 = 0; $_i669 < $_size665; ++$_i669) + $_size672 = 0; + $_etype675 = 0; + $xfer += $input->readListBegin($_etype675, $_size672); + for ($_i676 = 0; $_i676 < $_size672; ++$_i676) { - $elem670 = null; - $elem670 = new \metastore\Partition(); - $xfer += $elem670->read($input); - $this->success []= $elem670; + $elem677 = null; + $elem677 = new \metastore\Partition(); + $xfer += $elem677->read($input); + $this->success []= $elem677; } $xfer += $input->readListEnd(); } else { @@ -19497,9 +19600,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter671) + foreach ($this->success as $iter678) { - $xfer += $iter671->write($output); + $xfer += $iter678->write($output); } } $output->writeListEnd(); @@ -19721,15 +19824,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size672 = 0; - $_etype675 = 0; - $xfer += $input->readListBegin($_etype675, $_size672); - for ($_i676 = 0; $_i676 < $_size672; ++$_i676) + $_size679 = 0; + $_etype682 = 0; + $xfer += $input->readListBegin($_etype682, $_size679); + for ($_i683 = 0; $_i683 < $_size679; ++$_i683) { - $elem677 = null; - $elem677 = new \metastore\PartitionSpec(); - $xfer += $elem677->read($input); - $this->success []= $elem677; + $elem684 = null; + $elem684 = new \metastore\PartitionSpec(); + $xfer += $elem684->read($input); + $this->success []= $elem684; } $xfer += $input->readListEnd(); } else { @@ -19773,9 +19876,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter678) + foreach ($this->success as $iter685) { - $xfer += $iter678->write($output); + $xfer += $iter685->write($output); } } $output->writeListEnd(); @@ -20074,14 +20177,14 @@ case 3: if ($ftype == TType::LST) { $this->names = array(); - $_size679 = 0; - $_etype682 = 0; - $xfer += $input->readListBegin($_etype682, $_size679); - for ($_i683 = 0; $_i683 < $_size679; ++$_i683) + $_size686 = 0; + $_etype689 = 0; + $xfer += $input->readListBegin($_etype689, $_size686); + for ($_i690 = 0; $_i690 < $_size686; ++$_i690) { - $elem684 = null; - $xfer += $input->readString($elem684); - $this->names []= $elem684; + $elem691 = null; + $xfer += $input->readString($elem691); + $this->names []= $elem691; } $xfer += $input->readListEnd(); } else { @@ -20119,9 +20222,9 @@ { $output->writeListBegin(TType::STRING, count($this->names)); { - foreach ($this->names as $iter685) + foreach ($this->names as $iter692) { - $xfer += $output->writeString($iter685); + $xfer += $output->writeString($iter692); } } $output->writeListEnd(); @@ -20201,15 +20304,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size686 = 0; - $_etype689 = 0; - $xfer += $input->readListBegin($_etype689, $_size686); - for ($_i690 = 0; $_i690 < $_size686; ++$_i690) + $_size693 = 0; + $_etype696 = 0; + $xfer += $input->readListBegin($_etype696, $_size693); + for ($_i697 = 0; $_i697 < $_size693; ++$_i697) { - $elem691 = null; - $elem691 = new \metastore\Partition(); - $xfer += $elem691->read($input); - $this->success []= $elem691; + $elem698 = null; + $elem698 = new \metastore\Partition(); + $xfer += $elem698->read($input); + $this->success []= $elem698; } $xfer += $input->readListEnd(); } else { @@ -20253,9 +20356,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter692) + foreach ($this->success as $iter699) { - $xfer += $iter692->write($output); + $xfer += $iter699->write($output); } } $output->writeListEnd(); @@ -20570,15 +20673,15 @@ case 3: if ($ftype == TType::LST) { $this->new_parts = array(); - $_size693 = 0; - $_etype696 = 0; - $xfer += $input->readListBegin($_etype696, $_size693); - for ($_i697 = 0; $_i697 < $_size693; ++$_i697) + $_size700 = 0; + $_etype703 = 0; + $xfer += $input->readListBegin($_etype703, $_size700); + for ($_i704 = 0; $_i704 < $_size700; ++$_i704) { - $elem698 = null; - $elem698 = new \metastore\Partition(); - $xfer += $elem698->read($input); - $this->new_parts []= $elem698; + $elem705 = null; + $elem705 = new \metastore\Partition(); + $xfer += $elem705->read($input); + $this->new_parts []= $elem705; } $xfer += $input->readListEnd(); } else { @@ -20616,9 +20719,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->new_parts)); { - foreach ($this->new_parts as $iter699) + foreach ($this->new_parts as $iter706) { - $xfer += $iter699->write($output); + $xfer += $iter706->write($output); } } $output->writeListEnd(); @@ -21052,14 +21155,14 @@ case 3: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size700 = 0; - $_etype703 = 0; - $xfer += $input->readListBegin($_etype703, $_size700); - for ($_i704 = 0; $_i704 < $_size700; ++$_i704) + $_size707 = 0; + $_etype710 = 0; + $xfer += $input->readListBegin($_etype710, $_size707); + for ($_i711 = 0; $_i711 < $_size707; ++$_i711) { - $elem705 = null; - $xfer += $input->readString($elem705); - $this->part_vals []= $elem705; + $elem712 = null; + $xfer += $input->readString($elem712); + $this->part_vals []= $elem712; } $xfer += $input->readListEnd(); } else { @@ -21105,9 +21208,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter706) + foreach ($this->part_vals as $iter713) { - $xfer += $output->writeString($iter706); + $xfer += $output->writeString($iter713); } } $output->writeListEnd(); @@ -21280,14 +21383,14 @@ case 1: if ($ftype == TType::LST) { $this->part_vals = array(); - $_size707 = 0; - $_etype710 = 0; - $xfer += $input->readListBegin($_etype710, $_size707); - for ($_i711 = 0; $_i711 < $_size707; ++$_i711) + $_size714 = 0; + $_etype717 = 0; + $xfer += $input->readListBegin($_etype717, $_size714); + for ($_i718 = 0; $_i718 < $_size714; ++$_i718) { - $elem712 = null; - $xfer += $input->readString($elem712); - $this->part_vals []= $elem712; + $elem719 = null; + $xfer += $input->readString($elem719); + $this->part_vals []= $elem719; } $xfer += $input->readListEnd(); } else { @@ -21322,9 +21425,9 @@ { $output->writeListBegin(TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $iter713) + foreach ($this->part_vals as $iter720) { - $xfer += $output->writeString($iter713); + $xfer += $output->writeString($iter720); } } $output->writeListEnd(); @@ -21751,14 +21854,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size714 = 0; - $_etype717 = 0; - $xfer += $input->readListBegin($_etype717, $_size714); - for ($_i718 = 0; $_i718 < $_size714; ++$_i718) + $_size721 = 0; + $_etype724 = 0; + $xfer += $input->readListBegin($_etype724, $_size721); + for ($_i725 = 0; $_i725 < $_size721; ++$_i725) { - $elem719 = null; - $xfer += $input->readString($elem719); - $this->success []= $elem719; + $elem726 = null; + $xfer += $input->readString($elem726); + $this->success []= $elem726; } $xfer += $input->readListEnd(); } else { @@ -21794,9 +21897,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter720) + foreach ($this->success as $iter727) { - $xfer += $output->writeString($iter720); + $xfer += $output->writeString($iter727); } } $output->writeListEnd(); @@ -21947,17 +22050,17 @@ case 0: if ($ftype == TType::MAP) { $this->success = array(); - $_size721 = 0; - $_ktype722 = 0; - $_vtype723 = 0; - $xfer += $input->readMapBegin($_ktype722, $_vtype723, $_size721); - for ($_i725 = 0; $_i725 < $_size721; ++$_i725) + $_size728 = 0; + $_ktype729 = 0; + $_vtype730 = 0; + $xfer += $input->readMapBegin($_ktype729, $_vtype730, $_size728); + for ($_i732 = 0; $_i732 < $_size728; ++$_i732) { - $key726 = ''; - $val727 = ''; - $xfer += $input->readString($key726); - $xfer += $input->readString($val727); - $this->success[$key726] = $val727; + $key733 = ''; + $val734 = ''; + $xfer += $input->readString($key733); + $xfer += $input->readString($val734); + $this->success[$key733] = $val734; } $xfer += $input->readMapEnd(); } else { @@ -21993,10 +22096,10 @@ { $output->writeMapBegin(TType::STRING, TType::STRING, count($this->success)); { - foreach ($this->success as $kiter728 => $viter729) + foreach ($this->success as $kiter735 => $viter736) { - $xfer += $output->writeString($kiter728); - $xfer += $output->writeString($viter729); + $xfer += $output->writeString($kiter735); + $xfer += $output->writeString($viter736); } } $output->writeMapEnd(); @@ -22104,17 +22207,17 @@ case 3: if ($ftype == TType::MAP) { $this->part_vals = array(); - $_size730 = 0; - $_ktype731 = 0; - $_vtype732 = 0; - $xfer += $input->readMapBegin($_ktype731, $_vtype732, $_size730); - for ($_i734 = 0; $_i734 < $_size730; ++$_i734) + $_size737 = 0; + $_ktype738 = 0; + $_vtype739 = 0; + $xfer += $input->readMapBegin($_ktype738, $_vtype739, $_size737); + for ($_i741 = 0; $_i741 < $_size737; ++$_i741) { - $key735 = ''; - $val736 = ''; - $xfer += $input->readString($key735); - $xfer += $input->readString($val736); - $this->part_vals[$key735] = $val736; + $key742 = ''; + $val743 = ''; + $xfer += $input->readString($key742); + $xfer += $input->readString($val743); + $this->part_vals[$key742] = $val743; } $xfer += $input->readMapEnd(); } else { @@ -22159,10 +22262,10 @@ { $output->writeMapBegin(TType::STRING, TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $kiter737 => $viter738) + foreach ($this->part_vals as $kiter744 => $viter745) { - $xfer += $output->writeString($kiter737); - $xfer += $output->writeString($viter738); + $xfer += $output->writeString($kiter744); + $xfer += $output->writeString($viter745); } } $output->writeMapEnd(); @@ -22454,17 +22557,17 @@ case 3: if ($ftype == TType::MAP) { $this->part_vals = array(); - $_size739 = 0; - $_ktype740 = 0; - $_vtype741 = 0; - $xfer += $input->readMapBegin($_ktype740, $_vtype741, $_size739); - for ($_i743 = 0; $_i743 < $_size739; ++$_i743) + $_size746 = 0; + $_ktype747 = 0; + $_vtype748 = 0; + $xfer += $input->readMapBegin($_ktype747, $_vtype748, $_size746); + for ($_i750 = 0; $_i750 < $_size746; ++$_i750) { - $key744 = ''; - $val745 = ''; - $xfer += $input->readString($key744); - $xfer += $input->readString($val745); - $this->part_vals[$key744] = $val745; + $key751 = ''; + $val752 = ''; + $xfer += $input->readString($key751); + $xfer += $input->readString($val752); + $this->part_vals[$key751] = $val752; } $xfer += $input->readMapEnd(); } else { @@ -22509,10 +22612,10 @@ { $output->writeMapBegin(TType::STRING, TType::STRING, count($this->part_vals)); { - foreach ($this->part_vals as $kiter746 => $viter747) + foreach ($this->part_vals as $kiter753 => $viter754) { - $xfer += $output->writeString($kiter746); - $xfer += $output->writeString($viter747); + $xfer += $output->writeString($kiter753); + $xfer += $output->writeString($viter754); } } $output->writeMapEnd(); @@ -23872,15 +23975,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size748 = 0; - $_etype751 = 0; - $xfer += $input->readListBegin($_etype751, $_size748); - for ($_i752 = 0; $_i752 < $_size748; ++$_i752) + $_size755 = 0; + $_etype758 = 0; + $xfer += $input->readListBegin($_etype758, $_size755); + for ($_i759 = 0; $_i759 < $_size755; ++$_i759) { - $elem753 = null; - $elem753 = new \metastore\Index(); - $xfer += $elem753->read($input); - $this->success []= $elem753; + $elem760 = null; + $elem760 = new \metastore\Index(); + $xfer += $elem760->read($input); + $this->success []= $elem760; } $xfer += $input->readListEnd(); } else { @@ -23924,9 +24027,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter754) + foreach ($this->success as $iter761) { - $xfer += $iter754->write($output); + $xfer += $iter761->write($output); } } $output->writeListEnd(); @@ -24118,14 +24221,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size755 = 0; - $_etype758 = 0; - $xfer += $input->readListBegin($_etype758, $_size755); - for ($_i759 = 0; $_i759 < $_size755; ++$_i759) + $_size762 = 0; + $_etype765 = 0; + $xfer += $input->readListBegin($_etype765, $_size762); + for ($_i766 = 0; $_i766 < $_size762; ++$_i766) { - $elem760 = null; - $xfer += $input->readString($elem760); - $this->success []= $elem760; + $elem767 = null; + $xfer += $input->readString($elem767); + $this->success []= $elem767; } $xfer += $input->readListEnd(); } else { @@ -24161,9 +24264,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter761) + foreach ($this->success as $iter768) { - $xfer += $output->writeString($iter761); + $xfer += $output->writeString($iter768); } } $output->writeListEnd(); @@ -27391,14 +27494,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size762 = 0; - $_etype765 = 0; - $xfer += $input->readListBegin($_etype765, $_size762); - for ($_i766 = 0; $_i766 < $_size762; ++$_i766) + $_size769 = 0; + $_etype772 = 0; + $xfer += $input->readListBegin($_etype772, $_size769); + for ($_i773 = 0; $_i773 < $_size769; ++$_i773) { - $elem767 = null; - $xfer += $input->readString($elem767); - $this->success []= $elem767; + $elem774 = null; + $xfer += $input->readString($elem774); + $this->success []= $elem774; } $xfer += $input->readListEnd(); } else { @@ -27434,9 +27537,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter768) + foreach ($this->success as $iter775) { - $xfer += $output->writeString($iter768); + $xfer += $output->writeString($iter775); } } $output->writeListEnd(); @@ -28111,14 +28214,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size769 = 0; - $_etype772 = 0; - $xfer += $input->readListBegin($_etype772, $_size769); - for ($_i773 = 0; $_i773 < $_size769; ++$_i773) + $_size776 = 0; + $_etype779 = 0; + $xfer += $input->readListBegin($_etype779, $_size776); + for ($_i780 = 0; $_i780 < $_size776; ++$_i780) { - $elem774 = null; - $xfer += $input->readString($elem774); - $this->success []= $elem774; + $elem781 = null; + $xfer += $input->readString($elem781); + $this->success []= $elem781; } $xfer += $input->readListEnd(); } else { @@ -28154,9 +28257,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter775) + foreach ($this->success as $iter782) { - $xfer += $output->writeString($iter775); + $xfer += $output->writeString($iter782); } } $output->writeListEnd(); @@ -28796,15 +28899,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size776 = 0; - $_etype779 = 0; - $xfer += $input->readListBegin($_etype779, $_size776); - for ($_i780 = 0; $_i780 < $_size776; ++$_i780) + $_size783 = 0; + $_etype786 = 0; + $xfer += $input->readListBegin($_etype786, $_size783); + for ($_i787 = 0; $_i787 < $_size783; ++$_i787) { - $elem781 = null; - $elem781 = new \metastore\Role(); - $xfer += $elem781->read($input); - $this->success []= $elem781; + $elem788 = null; + $elem788 = new \metastore\Role(); + $xfer += $elem788->read($input); + $this->success []= $elem788; } $xfer += $input->readListEnd(); } else { @@ -28840,9 +28943,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter782) + foreach ($this->success as $iter789) { - $xfer += $iter782->write($output); + $xfer += $iter789->write($output); } } $output->writeListEnd(); @@ -29468,14 +29571,14 @@ case 3: if ($ftype == TType::LST) { $this->group_names = array(); - $_size783 = 0; - $_etype786 = 0; - $xfer += $input->readListBegin($_etype786, $_size783); - for ($_i787 = 0; $_i787 < $_size783; ++$_i787) + $_size790 = 0; + $_etype793 = 0; + $xfer += $input->readListBegin($_etype793, $_size790); + for ($_i794 = 0; $_i794 < $_size790; ++$_i794) { - $elem788 = null; - $xfer += $input->readString($elem788); - $this->group_names []= $elem788; + $elem795 = null; + $xfer += $input->readString($elem795); + $this->group_names []= $elem795; } $xfer += $input->readListEnd(); } else { @@ -29516,9 +29619,9 @@ { $output->writeListBegin(TType::STRING, count($this->group_names)); { - foreach ($this->group_names as $iter789) + foreach ($this->group_names as $iter796) { - $xfer += $output->writeString($iter789); + $xfer += $output->writeString($iter796); } } $output->writeListEnd(); @@ -29805,15 +29908,15 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size790 = 0; - $_etype793 = 0; - $xfer += $input->readListBegin($_etype793, $_size790); - for ($_i794 = 0; $_i794 < $_size790; ++$_i794) + $_size797 = 0; + $_etype800 = 0; + $xfer += $input->readListBegin($_etype800, $_size797); + for ($_i801 = 0; $_i801 < $_size797; ++$_i801) { - $elem795 = null; - $elem795 = new \metastore\HiveObjectPrivilege(); - $xfer += $elem795->read($input); - $this->success []= $elem795; + $elem802 = null; + $elem802 = new \metastore\HiveObjectPrivilege(); + $xfer += $elem802->read($input); + $this->success []= $elem802; } $xfer += $input->readListEnd(); } else { @@ -29849,9 +29952,9 @@ { $output->writeListBegin(TType::STRUCT, count($this->success)); { - foreach ($this->success as $iter796) + foreach ($this->success as $iter803) { - $xfer += $iter796->write($output); + $xfer += $iter803->write($output); } } $output->writeListEnd(); @@ -30450,14 +30553,14 @@ case 2: if ($ftype == TType::LST) { $this->group_names = array(); - $_size797 = 0; - $_etype800 = 0; - $xfer += $input->readListBegin($_etype800, $_size797); - for ($_i801 = 0; $_i801 < $_size797; ++$_i801) + $_size804 = 0; + $_etype807 = 0; + $xfer += $input->readListBegin($_etype807, $_size804); + for ($_i808 = 0; $_i808 < $_size804; ++$_i808) { - $elem802 = null; - $xfer += $input->readString($elem802); - $this->group_names []= $elem802; + $elem809 = null; + $xfer += $input->readString($elem809); + $this->group_names []= $elem809; } $xfer += $input->readListEnd(); } else { @@ -30490,9 +30593,9 @@ { $output->writeListBegin(TType::STRING, count($this->group_names)); { - foreach ($this->group_names as $iter803) + foreach ($this->group_names as $iter810) { - $xfer += $output->writeString($iter803); + $xfer += $output->writeString($iter810); } } $output->writeListEnd(); @@ -30562,14 +30665,14 @@ case 0: if ($ftype == TType::LST) { $this->success = array(); - $_size804 = 0; - $_etype807 = 0; - $xfer += $input->readListBegin($_etype807, $_size804); - for ($_i808 = 0; $_i808 < $_size804; ++$_i808) + $_size811 = 0; + $_etype814 = 0; + $xfer += $input->readListBegin($_etype814, $_size811); + for ($_i815 = 0; $_i815 < $_size811; ++$_i815) { - $elem809 = null; - $xfer += $input->readString($elem809); - $this->success []= $elem809; + $elem816 = null; + $xfer += $input->readString($elem816); + $this->success []= $elem816; } $xfer += $input->readListEnd(); } else { @@ -30605,9 +30708,9 @@ { $output->writeListBegin(TType::STRING, count($this->success)); { - foreach ($this->success as $iter810) + foreach ($this->success as $iter817) { - $xfer += $output->writeString($iter810); + $xfer += $output->writeString($iter817); } } $output->writeListEnd(); @@ -33231,4 +33334,285 @@ } +class ThriftHiveMetastore_getNextNotification_args { + static $_TSPEC; + public $rqst = null; + + public function __construct($vals=null) { + if (!isset(self::$_TSPEC)) { + self::$_TSPEC = array( + 1 => array( + 'var' => 'rqst', + 'type' => TType::STRUCT, + 'class' => '\metastore\NotificationEventRequest', + ), + ); + } + if (is_array($vals)) { + if (isset($vals['rqst'])) { + $this->rqst = $vals['rqst']; + } + } + } + + public function getName() { + return 'ThriftHiveMetastore_getNextNotification_args'; + } + + 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::STRUCT) { + $this->rqst = new \metastore\NotificationEventRequest(); + $xfer += $this->rqst->read($input); + } 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('ThriftHiveMetastore_getNextNotification_args'); + if ($this->rqst !== null) { + if (!is_object($this->rqst)) { + throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA); + } + $xfer += $output->writeFieldBegin('rqst', TType::STRUCT, 1); + $xfer += $this->rqst->write($output); + $xfer += $output->writeFieldEnd(); + } + $xfer += $output->writeFieldStop(); + $xfer += $output->writeStructEnd(); + return $xfer; + } + +} + +class ThriftHiveMetastore_getNextNotification_result { + static $_TSPEC; + + public $success = null; + + public function __construct($vals=null) { + if (!isset(self::$_TSPEC)) { + self::$_TSPEC = array( + 0 => array( + 'var' => 'success', + 'type' => TType::STRUCT, + 'class' => '\metastore\NotificationEventResponse', + ), + ); + } + if (is_array($vals)) { + if (isset($vals['success'])) { + $this->success = $vals['success']; + } + } + } + + public function getName() { + return 'ThriftHiveMetastore_getNextNotification_result'; + } + + 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 0: + if ($ftype == TType::STRUCT) { + $this->success = new \metastore\NotificationEventResponse(); + $xfer += $this->success->read($input); + } 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('ThriftHiveMetastore_getNextNotification_result'); + if ($this->success !== null) { + if (!is_object($this->success)) { + throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA); + } + $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0); + $xfer += $this->success->write($output); + $xfer += $output->writeFieldEnd(); + } + $xfer += $output->writeFieldStop(); + $xfer += $output->writeStructEnd(); + return $xfer; + } + +} + +class ThriftHiveMetastore_getCurrentNotificationEventId_args { + static $_TSPEC; + + + public function __construct() { + if (!isset(self::$_TSPEC)) { + self::$_TSPEC = array( + ); + } + } + + public function getName() { + return 'ThriftHiveMetastore_getCurrentNotificationEventId_args'; + } + + 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) + { + default: + $xfer += $input->skip($ftype); + break; + } + $xfer += $input->readFieldEnd(); + } + $xfer += $input->readStructEnd(); + return $xfer; + } + + public function write($output) { + $xfer = 0; + $xfer += $output->writeStructBegin('ThriftHiveMetastore_getCurrentNotificationEventId_args'); + $xfer += $output->writeFieldStop(); + $xfer += $output->writeStructEnd(); + return $xfer; + } + +} + +class ThriftHiveMetastore_getCurrentNotificationEventId_result { + static $_TSPEC; + + public $success = null; + + public function __construct($vals=null) { + if (!isset(self::$_TSPEC)) { + self::$_TSPEC = array( + 0 => array( + 'var' => 'success', + 'type' => TType::STRUCT, + 'class' => '\metastore\CurrentNotificationEventId', + ), + ); + } + if (is_array($vals)) { + if (isset($vals['success'])) { + $this->success = $vals['success']; + } + } + } + + public function getName() { + return 'ThriftHiveMetastore_getCurrentNotificationEventId_result'; + } + + 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 0: + if ($ftype == TType::STRUCT) { + $this->success = new \metastore\CurrentNotificationEventId(); + $xfer += $this->success->read($input); + } 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('ThriftHiveMetastore_getCurrentNotificationEventId_result'); + if ($this->success !== null) { + if (!is_object($this->success)) { + throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA); + } + $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0); + $xfer += $this->success->write($output); + $xfer += $output->writeFieldEnd(); + } + $xfer += $output->writeFieldStop(); + $xfer += $output->writeStructEnd(); + return $xfer; + } + +} + + Index: metastore/src/gen/thrift/gen-php/metastore/Types.php =================================================================== --- metastore/src/gen/thrift/gen-php/metastore/Types.php (revision 1650429) +++ metastore/src/gen/thrift/gen-php/metastore/Types.php (working copy) @@ -11696,6 +11696,442 @@ } +class NotificationEventRequest { + static $_TSPEC; + + public $lastEvent = null; + public $maxEvents = null; + + public function __construct($vals=null) { + if (!isset(self::$_TSPEC)) { + self::$_TSPEC = array( + 1 => array( + 'var' => 'lastEvent', + 'type' => TType::I64, + ), + 2 => array( + 'var' => 'maxEvents', + 'type' => TType::I32, + ), + ); + } + if (is_array($vals)) { + if (isset($vals['lastEvent'])) { + $this->lastEvent = $vals['lastEvent']; + } + if (isset($vals['maxEvents'])) { + $this->maxEvents = $vals['maxEvents']; + } + } + } + + public function getName() { + return 'NotificationEventRequest'; + } + + 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::I64) { + $xfer += $input->readI64($this->lastEvent); + } else { + $xfer += $input->skip($ftype); + } + break; + case 2: + if ($ftype == TType::I32) { + $xfer += $input->readI32($this->maxEvents); + } 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('NotificationEventRequest'); + if ($this->lastEvent !== null) { + $xfer += $output->writeFieldBegin('lastEvent', TType::I64, 1); + $xfer += $output->writeI64($this->lastEvent); + $xfer += $output->writeFieldEnd(); + } + if ($this->maxEvents !== null) { + $xfer += $output->writeFieldBegin('maxEvents', TType::I32, 2); + $xfer += $output->writeI32($this->maxEvents); + $xfer += $output->writeFieldEnd(); + } + $xfer += $output->writeFieldStop(); + $xfer += $output->writeStructEnd(); + return $xfer; + } + +} + +class NotificationEvent { + static $_TSPEC; + + public $eventId = null; + public $eventTime = null; + public $eventType = null; + public $dbName = null; + public $tableName = null; + public $message = null; + + public function __construct($vals=null) { + if (!isset(self::$_TSPEC)) { + self::$_TSPEC = array( + 1 => array( + 'var' => 'eventId', + 'type' => TType::I64, + ), + 2 => array( + 'var' => 'eventTime', + 'type' => TType::I32, + ), + 3 => array( + 'var' => 'eventType', + 'type' => TType::STRING, + ), + 4 => array( + 'var' => 'dbName', + 'type' => TType::STRING, + ), + 5 => array( + 'var' => 'tableName', + 'type' => TType::STRING, + ), + 6 => array( + 'var' => 'message', + 'type' => TType::STRING, + ), + ); + } + if (is_array($vals)) { + if (isset($vals['eventId'])) { + $this->eventId = $vals['eventId']; + } + if (isset($vals['eventTime'])) { + $this->eventTime = $vals['eventTime']; + } + if (isset($vals['eventType'])) { + $this->eventType = $vals['eventType']; + } + if (isset($vals['dbName'])) { + $this->dbName = $vals['dbName']; + } + if (isset($vals['tableName'])) { + $this->tableName = $vals['tableName']; + } + if (isset($vals['message'])) { + $this->message = $vals['message']; + } + } + } + + public function getName() { + return 'NotificationEvent'; + } + + 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::I64) { + $xfer += $input->readI64($this->eventId); + } else { + $xfer += $input->skip($ftype); + } + break; + case 2: + if ($ftype == TType::I32) { + $xfer += $input->readI32($this->eventTime); + } else { + $xfer += $input->skip($ftype); + } + break; + case 3: + if ($ftype == TType::STRING) { + $xfer += $input->readString($this->eventType); + } else { + $xfer += $input->skip($ftype); + } + break; + case 4: + if ($ftype == TType::STRING) { + $xfer += $input->readString($this->dbName); + } else { + $xfer += $input->skip($ftype); + } + break; + case 5: + if ($ftype == TType::STRING) { + $xfer += $input->readString($this->tableName); + } else { + $xfer += $input->skip($ftype); + } + break; + case 6: + if ($ftype == TType::STRING) { + $xfer += $input->readString($this->message); + } 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('NotificationEvent'); + if ($this->eventId !== null) { + $xfer += $output->writeFieldBegin('eventId', TType::I64, 1); + $xfer += $output->writeI64($this->eventId); + $xfer += $output->writeFieldEnd(); + } + if ($this->eventTime !== null) { + $xfer += $output->writeFieldBegin('eventTime', TType::I32, 2); + $xfer += $output->writeI32($this->eventTime); + $xfer += $output->writeFieldEnd(); + } + if ($this->eventType !== null) { + $xfer += $output->writeFieldBegin('eventType', TType::STRING, 3); + $xfer += $output->writeString($this->eventType); + $xfer += $output->writeFieldEnd(); + } + if ($this->dbName !== null) { + $xfer += $output->writeFieldBegin('dbName', TType::STRING, 4); + $xfer += $output->writeString($this->dbName); + $xfer += $output->writeFieldEnd(); + } + if ($this->tableName !== null) { + $xfer += $output->writeFieldBegin('tableName', TType::STRING, 5); + $xfer += $output->writeString($this->tableName); + $xfer += $output->writeFieldEnd(); + } + if ($this->message !== null) { + $xfer += $output->writeFieldBegin('message', TType::STRING, 6); + $xfer += $output->writeString($this->message); + $xfer += $output->writeFieldEnd(); + } + $xfer += $output->writeFieldStop(); + $xfer += $output->writeStructEnd(); + return $xfer; + } + +} + +class NotificationEventResponse { + static $_TSPEC; + + public $events = null; + + public function __construct($vals=null) { + if (!isset(self::$_TSPEC)) { + self::$_TSPEC = array( + 1 => array( + 'var' => 'events', + 'type' => TType::LST, + 'etype' => TType::STRUCT, + 'elem' => array( + 'type' => TType::STRUCT, + 'class' => '\metastore\NotificationEvent', + ), + ), + ); + } + if (is_array($vals)) { + if (isset($vals['events'])) { + $this->events = $vals['events']; + } + } + } + + public function getName() { + return 'NotificationEventResponse'; + } + + 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::LST) { + $this->events = array(); + $_size437 = 0; + $_etype440 = 0; + $xfer += $input->readListBegin($_etype440, $_size437); + for ($_i441 = 0; $_i441 < $_size437; ++$_i441) + { + $elem442 = null; + $elem442 = new \metastore\NotificationEvent(); + $xfer += $elem442->read($input); + $this->events []= $elem442; + } + $xfer += $input->readListEnd(); + } 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('NotificationEventResponse'); + if ($this->events !== null) { + if (!is_array($this->events)) { + throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA); + } + $xfer += $output->writeFieldBegin('events', TType::LST, 1); + { + $output->writeListBegin(TType::STRUCT, count($this->events)); + { + foreach ($this->events as $iter443) + { + $xfer += $iter443->write($output); + } + } + $output->writeListEnd(); + } + $xfer += $output->writeFieldEnd(); + } + $xfer += $output->writeFieldStop(); + $xfer += $output->writeStructEnd(); + return $xfer; + } + +} + +class CurrentNotificationEventId { + static $_TSPEC; + + public $eventId = null; + + public function __construct($vals=null) { + if (!isset(self::$_TSPEC)) { + self::$_TSPEC = array( + 1 => array( + 'var' => 'eventId', + 'type' => TType::I64, + ), + ); + } + if (is_array($vals)) { + if (isset($vals['eventId'])) { + $this->eventId = $vals['eventId']; + } + } + } + + public function getName() { + return 'CurrentNotificationEventId'; + } + + 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::I64) { + $xfer += $input->readI64($this->eventId); + } 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('CurrentNotificationEventId'); + if ($this->eventId !== null) { + $xfer += $output->writeFieldBegin('eventId', TType::I64, 1); + $xfer += $output->writeI64($this->eventId); + $xfer += $output->writeFieldEnd(); + } + $xfer += $output->writeFieldStop(); + $xfer += $output->writeStructEnd(); + return $xfer; + } + +} + class MetaException extends TException { static $_TSPEC; Index: metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore-remote =================================================================== --- metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore-remote (revision 1650429) +++ metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore-remote (working copy) @@ -140,6 +140,8 @@ print ' HeartbeatTxnRangeResponse heartbeat_txn_range(HeartbeatTxnRangeRequest txns)' print ' void compact(CompactionRequest rqst)' print ' ShowCompactResponse show_compact(ShowCompactRequest rqst)' + print ' NotificationEventResponse getNextNotification(NotificationEventRequest rqst)' + print ' CurrentNotificationEventId getCurrentNotificationEventId()' print '' sys.exit(0) @@ -893,6 +895,18 @@ sys.exit(1) pp.pprint(client.show_compact(eval(args[0]),)) +elif cmd == 'getNextNotification': + if len(args) != 1: + print 'getNextNotification requires 1 args' + sys.exit(1) + pp.pprint(client.getNextNotification(eval(args[0]),)) + +elif cmd == 'getCurrentNotificationEventId': + if len(args) != 0: + print 'getCurrentNotificationEventId requires 0 args' + sys.exit(1) + pp.pprint(client.getCurrentNotificationEventId()) + else: print 'Unrecognized method %s' % cmd sys.exit(1) Index: metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py =================================================================== --- metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py (revision 1650429) +++ metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py (working copy) @@ -976,7 +976,17 @@ """ pass + def getNextNotification(self, rqst): + """ + Parameters: + - rqst + """ + pass + def getCurrentNotificationEventId(self, ): + pass + + class Client(fb303.FacebookService.Client, Iface): """ This interface is live. @@ -5196,7 +5206,62 @@ return result.success raise TApplicationException(TApplicationException.MISSING_RESULT, "show_compact failed: unknown result"); + def getNextNotification(self, rqst): + """ + Parameters: + - rqst + """ + self.send_getNextNotification(rqst) + return self.recv_getNextNotification() + def send_getNextNotification(self, rqst): + self._oprot.writeMessageBegin('getNextNotification', TMessageType.CALL, self._seqid) + args = getNextNotification_args() + args.rqst = rqst + args.write(self._oprot) + self._oprot.writeMessageEnd() + self._oprot.trans.flush() + + def recv_getNextNotification(self, ): + (fname, mtype, rseqid) = self._iprot.readMessageBegin() + if mtype == TMessageType.EXCEPTION: + x = TApplicationException() + x.read(self._iprot) + self._iprot.readMessageEnd() + raise x + result = getNextNotification_result() + result.read(self._iprot) + self._iprot.readMessageEnd() + if result.success is not None: + return result.success + raise TApplicationException(TApplicationException.MISSING_RESULT, "getNextNotification failed: unknown result"); + + def getCurrentNotificationEventId(self, ): + self.send_getCurrentNotificationEventId() + return self.recv_getCurrentNotificationEventId() + + def send_getCurrentNotificationEventId(self, ): + self._oprot.writeMessageBegin('getCurrentNotificationEventId', TMessageType.CALL, self._seqid) + args = getCurrentNotificationEventId_args() + args.write(self._oprot) + self._oprot.writeMessageEnd() + self._oprot.trans.flush() + + def recv_getCurrentNotificationEventId(self, ): + (fname, mtype, rseqid) = self._iprot.readMessageBegin() + if mtype == TMessageType.EXCEPTION: + x = TApplicationException() + x.read(self._iprot) + self._iprot.readMessageEnd() + raise x + result = getCurrentNotificationEventId_result() + result.read(self._iprot) + self._iprot.readMessageEnd() + if result.success is not None: + return result.success + raise TApplicationException(TApplicationException.MISSING_RESULT, "getCurrentNotificationEventId failed: unknown result"); + + class Processor(fb303.FacebookService.Processor, Iface, TProcessor): def __init__(self, handler): fb303.FacebookService.Processor.__init__(self, handler) @@ -5317,6 +5382,8 @@ self._processMap["heartbeat_txn_range"] = Processor.process_heartbeat_txn_range self._processMap["compact"] = Processor.process_compact self._processMap["show_compact"] = Processor.process_show_compact + self._processMap["getNextNotification"] = Processor.process_getNextNotification + self._processMap["getCurrentNotificationEventId"] = Processor.process_getCurrentNotificationEventId def process(self, iprot, oprot): (name, type, seqid) = iprot.readMessageBegin() @@ -7202,7 +7269,29 @@ oprot.writeMessageEnd() oprot.trans.flush() + def process_getNextNotification(self, seqid, iprot, oprot): + args = getNextNotification_args() + args.read(iprot) + iprot.readMessageEnd() + result = getNextNotification_result() + result.success = self._handler.getNextNotification(args.rqst) + oprot.writeMessageBegin("getNextNotification", TMessageType.REPLY, seqid) + result.write(oprot) + oprot.writeMessageEnd() + oprot.trans.flush() + def process_getCurrentNotificationEventId(self, seqid, iprot, oprot): + args = getCurrentNotificationEventId_args() + args.read(iprot) + iprot.readMessageEnd() + result = getCurrentNotificationEventId_result() + result.success = self._handler.getCurrentNotificationEventId() + oprot.writeMessageBegin("getCurrentNotificationEventId", TMessageType.REPLY, seqid) + result.write(oprot) + oprot.writeMessageEnd() + oprot.trans.flush() + + # HELPER FUNCTIONS AND STRUCTURES class getMetaConf_args: @@ -8023,10 +8112,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype437, _size434) = iprot.readListBegin() - for _i438 in xrange(_size434): - _elem439 = iprot.readString(); - self.success.append(_elem439) + (_etype444, _size441) = iprot.readListBegin() + for _i445 in xrange(_size441): + _elem446 = iprot.readString(); + self.success.append(_elem446) iprot.readListEnd() else: iprot.skip(ftype) @@ -8049,8 +8138,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter440 in self.success: - oprot.writeString(iter440) + for iter447 in self.success: + oprot.writeString(iter447) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -8145,10 +8234,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype444, _size441) = iprot.readListBegin() - for _i445 in xrange(_size441): - _elem446 = iprot.readString(); - self.success.append(_elem446) + (_etype451, _size448) = iprot.readListBegin() + for _i452 in xrange(_size448): + _elem453 = iprot.readString(); + self.success.append(_elem453) iprot.readListEnd() else: iprot.skip(ftype) @@ -8171,8 +8260,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter447 in self.success: - oprot.writeString(iter447) + for iter454 in self.success: + oprot.writeString(iter454) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -8882,12 +8971,12 @@ if fid == 0: if ftype == TType.MAP: self.success = {} - (_ktype449, _vtype450, _size448 ) = iprot.readMapBegin() - for _i452 in xrange(_size448): - _key453 = iprot.readString(); - _val454 = Type() - _val454.read(iprot) - self.success[_key453] = _val454 + (_ktype456, _vtype457, _size455 ) = iprot.readMapBegin() + for _i459 in xrange(_size455): + _key460 = iprot.readString(); + _val461 = Type() + _val461.read(iprot) + self.success[_key460] = _val461 iprot.readMapEnd() else: iprot.skip(ftype) @@ -8910,9 +8999,9 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.MAP, 0) oprot.writeMapBegin(TType.STRING, TType.STRUCT, len(self.success)) - for kiter455,viter456 in self.success.items(): - oprot.writeString(kiter455) - viter456.write(oprot) + for kiter462,viter463 in self.success.items(): + oprot.writeString(kiter462) + viter463.write(oprot) oprot.writeMapEnd() oprot.writeFieldEnd() if self.o2 is not None: @@ -9043,11 +9132,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype460, _size457) = iprot.readListBegin() - for _i461 in xrange(_size457): - _elem462 = FieldSchema() - _elem462.read(iprot) - self.success.append(_elem462) + (_etype467, _size464) = iprot.readListBegin() + for _i468 in xrange(_size464): + _elem469 = FieldSchema() + _elem469.read(iprot) + self.success.append(_elem469) iprot.readListEnd() else: iprot.skip(ftype) @@ -9082,8 +9171,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: @@ -9222,11 +9311,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype467, _size464) = iprot.readListBegin() - for _i468 in xrange(_size464): - _elem469 = FieldSchema() - _elem469.read(iprot) - self.success.append(_elem469) + (_etype474, _size471) = iprot.readListBegin() + for _i475 in xrange(_size471): + _elem476 = FieldSchema() + _elem476.read(iprot) + self.success.append(_elem476) iprot.readListEnd() else: iprot.skip(ftype) @@ -9261,8 +9350,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter470 in self.success: - iter470.write(oprot) + for iter477 in self.success: + iter477.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -10059,10 +10148,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype474, _size471) = iprot.readListBegin() - for _i475 in xrange(_size471): - _elem476 = iprot.readString(); - self.success.append(_elem476) + (_etype481, _size478) = iprot.readListBegin() + for _i482 in xrange(_size478): + _elem483 = iprot.readString(); + self.success.append(_elem483) iprot.readListEnd() else: iprot.skip(ftype) @@ -10085,8 +10174,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter477 in self.success: - oprot.writeString(iter477) + for iter484 in self.success: + oprot.writeString(iter484) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -10199,10 +10288,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype481, _size478) = iprot.readListBegin() - for _i482 in xrange(_size478): - _elem483 = iprot.readString(); - self.success.append(_elem483) + (_etype488, _size485) = iprot.readListBegin() + for _i489 in xrange(_size485): + _elem490 = iprot.readString(); + self.success.append(_elem490) iprot.readListEnd() else: iprot.skip(ftype) @@ -10225,8 +10314,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter484 in self.success: - oprot.writeString(iter484) + for iter491 in self.success: + oprot.writeString(iter491) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -10443,10 +10532,10 @@ elif fid == 2: if ftype == TType.LIST: self.tbl_names = [] - (_etype488, _size485) = iprot.readListBegin() - for _i489 in xrange(_size485): - _elem490 = iprot.readString(); - self.tbl_names.append(_elem490) + (_etype495, _size492) = iprot.readListBegin() + for _i496 in xrange(_size492): + _elem497 = iprot.readString(); + self.tbl_names.append(_elem497) iprot.readListEnd() else: iprot.skip(ftype) @@ -10467,8 +10556,8 @@ if self.tbl_names is not None: oprot.writeFieldBegin('tbl_names', TType.LIST, 2) oprot.writeListBegin(TType.STRING, len(self.tbl_names)) - for iter491 in self.tbl_names: - oprot.writeString(iter491) + for iter498 in self.tbl_names: + oprot.writeString(iter498) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -10523,11 +10612,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype495, _size492) = iprot.readListBegin() - for _i496 in xrange(_size492): - _elem497 = Table() - _elem497.read(iprot) - self.success.append(_elem497) + (_etype502, _size499) = iprot.readListBegin() + for _i503 in xrange(_size499): + _elem504 = Table() + _elem504.read(iprot) + self.success.append(_elem504) iprot.readListEnd() else: iprot.skip(ftype) @@ -10562,8 +10651,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter498 in self.success: - iter498.write(oprot) + for iter505 in self.success: + iter505.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -10714,10 +10803,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype502, _size499) = iprot.readListBegin() - for _i503 in xrange(_size499): - _elem504 = iprot.readString(); - self.success.append(_elem504) + (_etype509, _size506) = iprot.readListBegin() + for _i510 in xrange(_size506): + _elem511 = iprot.readString(); + self.success.append(_elem511) iprot.readListEnd() else: iprot.skip(ftype) @@ -10752,8 +10841,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter505 in self.success: - oprot.writeString(iter505) + for iter512 in self.success: + oprot.writeString(iter512) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -11647,11 +11736,11 @@ if fid == 1: if ftype == TType.LIST: self.new_parts = [] - (_etype509, _size506) = iprot.readListBegin() - for _i510 in xrange(_size506): - _elem511 = Partition() - _elem511.read(iprot) - self.new_parts.append(_elem511) + (_etype516, _size513) = iprot.readListBegin() + for _i517 in xrange(_size513): + _elem518 = Partition() + _elem518.read(iprot) + self.new_parts.append(_elem518) iprot.readListEnd() else: iprot.skip(ftype) @@ -11668,8 +11757,8 @@ if self.new_parts is not None: oprot.writeFieldBegin('new_parts', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.new_parts)) - for iter512 in self.new_parts: - iter512.write(oprot) + for iter519 in self.new_parts: + iter519.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -11814,11 +11903,11 @@ if fid == 1: if ftype == TType.LIST: self.new_parts = [] - (_etype516, _size513) = iprot.readListBegin() - for _i517 in xrange(_size513): - _elem518 = PartitionSpec() - _elem518.read(iprot) - self.new_parts.append(_elem518) + (_etype523, _size520) = iprot.readListBegin() + for _i524 in xrange(_size520): + _elem525 = PartitionSpec() + _elem525.read(iprot) + self.new_parts.append(_elem525) iprot.readListEnd() else: iprot.skip(ftype) @@ -11835,8 +11924,8 @@ if self.new_parts is not None: oprot.writeFieldBegin('new_parts', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.new_parts)) - for iter519 in self.new_parts: - iter519.write(oprot) + for iter526 in self.new_parts: + iter526.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -11997,10 +12086,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype523, _size520) = iprot.readListBegin() - for _i524 in xrange(_size520): - _elem525 = iprot.readString(); - self.part_vals.append(_elem525) + (_etype530, _size527) = iprot.readListBegin() + for _i531 in xrange(_size527): + _elem532 = iprot.readString(); + self.part_vals.append(_elem532) iprot.readListEnd() else: iprot.skip(ftype) @@ -12025,8 +12114,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter526 in self.part_vals: - oprot.writeString(iter526) + for iter533 in self.part_vals: + oprot.writeString(iter533) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -12351,10 +12440,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype530, _size527) = iprot.readListBegin() - for _i531 in xrange(_size527): - _elem532 = iprot.readString(); - self.part_vals.append(_elem532) + (_etype537, _size534) = iprot.readListBegin() + for _i538 in xrange(_size534): + _elem539 = iprot.readString(); + self.part_vals.append(_elem539) iprot.readListEnd() else: iprot.skip(ftype) @@ -12385,8 +12474,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter533 in self.part_vals: - oprot.writeString(iter533) + for iter540 in self.part_vals: + oprot.writeString(iter540) oprot.writeListEnd() oprot.writeFieldEnd() if self.environment_context is not None: @@ -12934,10 +13023,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype537, _size534) = iprot.readListBegin() - for _i538 in xrange(_size534): - _elem539 = iprot.readString(); - self.part_vals.append(_elem539) + (_etype544, _size541) = iprot.readListBegin() + for _i545 in xrange(_size541): + _elem546 = iprot.readString(); + self.part_vals.append(_elem546) iprot.readListEnd() else: iprot.skip(ftype) @@ -12967,8 +13056,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter540 in self.part_vals: - oprot.writeString(iter540) + for iter547 in self.part_vals: + oprot.writeString(iter547) oprot.writeListEnd() oprot.writeFieldEnd() if self.deleteData is not None: @@ -13126,10 +13215,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype544, _size541) = iprot.readListBegin() - for _i545 in xrange(_size541): - _elem546 = iprot.readString(); - self.part_vals.append(_elem546) + (_etype551, _size548) = iprot.readListBegin() + for _i552 in xrange(_size548): + _elem553 = iprot.readString(); + self.part_vals.append(_elem553) iprot.readListEnd() else: iprot.skip(ftype) @@ -13165,8 +13254,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter547 in self.part_vals: - oprot.writeString(iter547) + for iter554 in self.part_vals: + oprot.writeString(iter554) oprot.writeListEnd() oprot.writeFieldEnd() if self.deleteData is not None: @@ -13844,10 +13933,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype551, _size548) = iprot.readListBegin() - for _i552 in xrange(_size548): - _elem553 = iprot.readString(); - self.part_vals.append(_elem553) + (_etype558, _size555) = iprot.readListBegin() + for _i559 in xrange(_size555): + _elem560 = iprot.readString(); + self.part_vals.append(_elem560) iprot.readListEnd() else: iprot.skip(ftype) @@ -13872,8 +13961,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter554 in self.part_vals: - oprot.writeString(iter554) + for iter561 in self.part_vals: + oprot.writeString(iter561) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -14018,11 +14107,11 @@ if fid == 1: if ftype == TType.MAP: self.partitionSpecs = {} - (_ktype556, _vtype557, _size555 ) = iprot.readMapBegin() - for _i559 in xrange(_size555): - _key560 = iprot.readString(); - _val561 = iprot.readString(); - self.partitionSpecs[_key560] = _val561 + (_ktype563, _vtype564, _size562 ) = iprot.readMapBegin() + for _i566 in xrange(_size562): + _key567 = iprot.readString(); + _val568 = iprot.readString(); + self.partitionSpecs[_key567] = _val568 iprot.readMapEnd() else: iprot.skip(ftype) @@ -14059,9 +14148,9 @@ if self.partitionSpecs is not None: oprot.writeFieldBegin('partitionSpecs', TType.MAP, 1) oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.partitionSpecs)) - for kiter562,viter563 in self.partitionSpecs.items(): - oprot.writeString(kiter562) - oprot.writeString(viter563) + for kiter569,viter570 in self.partitionSpecs.items(): + oprot.writeString(kiter569) + oprot.writeString(viter570) oprot.writeMapEnd() oprot.writeFieldEnd() if self.source_db is not None: @@ -14258,10 +14347,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype567, _size564) = iprot.readListBegin() - for _i568 in xrange(_size564): - _elem569 = iprot.readString(); - self.part_vals.append(_elem569) + (_etype574, _size571) = iprot.readListBegin() + for _i575 in xrange(_size571): + _elem576 = iprot.readString(); + self.part_vals.append(_elem576) iprot.readListEnd() else: iprot.skip(ftype) @@ -14273,10 +14362,10 @@ elif fid == 5: if ftype == TType.LIST: self.group_names = [] - (_etype573, _size570) = iprot.readListBegin() - for _i574 in xrange(_size570): - _elem575 = iprot.readString(); - self.group_names.append(_elem575) + (_etype580, _size577) = iprot.readListBegin() + for _i581 in xrange(_size577): + _elem582 = iprot.readString(); + self.group_names.append(_elem582) iprot.readListEnd() else: iprot.skip(ftype) @@ -14301,8 +14390,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter576 in self.part_vals: - oprot.writeString(iter576) + for iter583 in self.part_vals: + oprot.writeString(iter583) oprot.writeListEnd() oprot.writeFieldEnd() if self.user_name is not None: @@ -14312,8 +14401,8 @@ if self.group_names is not None: oprot.writeFieldBegin('group_names', TType.LIST, 5) oprot.writeListBegin(TType.STRING, len(self.group_names)) - for iter577 in self.group_names: - oprot.writeString(iter577) + for iter584 in self.group_names: + oprot.writeString(iter584) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -14705,11 +14794,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype581, _size578) = iprot.readListBegin() - for _i582 in xrange(_size578): - _elem583 = Partition() - _elem583.read(iprot) - self.success.append(_elem583) + (_etype588, _size585) = iprot.readListBegin() + for _i589 in xrange(_size585): + _elem590 = Partition() + _elem590.read(iprot) + self.success.append(_elem590) iprot.readListEnd() else: iprot.skip(ftype) @@ -14738,8 +14827,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter584 in self.success: - iter584.write(oprot) + for iter591 in self.success: + iter591.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -14826,10 +14915,10 @@ elif fid == 5: if ftype == TType.LIST: self.group_names = [] - (_etype588, _size585) = iprot.readListBegin() - for _i589 in xrange(_size585): - _elem590 = iprot.readString(); - self.group_names.append(_elem590) + (_etype595, _size592) = iprot.readListBegin() + for _i596 in xrange(_size592): + _elem597 = iprot.readString(); + self.group_names.append(_elem597) iprot.readListEnd() else: iprot.skip(ftype) @@ -14862,8 +14951,8 @@ if self.group_names is not None: oprot.writeFieldBegin('group_names', TType.LIST, 5) oprot.writeListBegin(TType.STRING, len(self.group_names)) - for iter591 in self.group_names: - oprot.writeString(iter591) + for iter598 in self.group_names: + oprot.writeString(iter598) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -14915,11 +15004,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype595, _size592) = iprot.readListBegin() - for _i596 in xrange(_size592): - _elem597 = Partition() - _elem597.read(iprot) - self.success.append(_elem597) + (_etype602, _size599) = iprot.readListBegin() + for _i603 in xrange(_size599): + _elem604 = Partition() + _elem604.read(iprot) + self.success.append(_elem604) iprot.readListEnd() else: iprot.skip(ftype) @@ -14948,8 +15037,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter598 in self.success: - iter598.write(oprot) + for iter605 in self.success: + iter605.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -15093,11 +15182,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype602, _size599) = iprot.readListBegin() - for _i603 in xrange(_size599): - _elem604 = PartitionSpec() - _elem604.read(iprot) - self.success.append(_elem604) + (_etype609, _size606) = iprot.readListBegin() + for _i610 in xrange(_size606): + _elem611 = PartitionSpec() + _elem611.read(iprot) + self.success.append(_elem611) iprot.readListEnd() else: iprot.skip(ftype) @@ -15126,8 +15215,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter605 in self.success: - iter605.write(oprot) + for iter612 in self.success: + iter612.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -15268,10 +15357,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype609, _size606) = iprot.readListBegin() - for _i610 in xrange(_size606): - _elem611 = iprot.readString(); - self.success.append(_elem611) + (_etype616, _size613) = iprot.readListBegin() + for _i617 in xrange(_size613): + _elem618 = iprot.readString(); + self.success.append(_elem618) iprot.readListEnd() else: iprot.skip(ftype) @@ -15294,8 +15383,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter612 in self.success: - oprot.writeString(iter612) + for iter619 in self.success: + oprot.writeString(iter619) oprot.writeListEnd() oprot.writeFieldEnd() if self.o2 is not None: @@ -15365,10 +15454,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype616, _size613) = iprot.readListBegin() - for _i617 in xrange(_size613): - _elem618 = iprot.readString(); - self.part_vals.append(_elem618) + (_etype623, _size620) = iprot.readListBegin() + for _i624 in xrange(_size620): + _elem625 = iprot.readString(); + self.part_vals.append(_elem625) iprot.readListEnd() else: iprot.skip(ftype) @@ -15398,8 +15487,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter619 in self.part_vals: - oprot.writeString(iter619) + for iter626 in self.part_vals: + oprot.writeString(iter626) oprot.writeListEnd() oprot.writeFieldEnd() if self.max_parts is not None: @@ -15455,11 +15544,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype623, _size620) = iprot.readListBegin() - for _i624 in xrange(_size620): - _elem625 = Partition() - _elem625.read(iprot) - self.success.append(_elem625) + (_etype630, _size627) = iprot.readListBegin() + for _i631 in xrange(_size627): + _elem632 = Partition() + _elem632.read(iprot) + self.success.append(_elem632) iprot.readListEnd() else: iprot.skip(ftype) @@ -15488,8 +15577,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter626 in self.success: - iter626.write(oprot) + for iter633 in self.success: + iter633.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -15569,10 +15658,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype630, _size627) = iprot.readListBegin() - for _i631 in xrange(_size627): - _elem632 = iprot.readString(); - self.part_vals.append(_elem632) + (_etype637, _size634) = iprot.readListBegin() + for _i638 in xrange(_size634): + _elem639 = iprot.readString(); + self.part_vals.append(_elem639) iprot.readListEnd() else: iprot.skip(ftype) @@ -15589,10 +15678,10 @@ elif fid == 6: if ftype == TType.LIST: self.group_names = [] - (_etype636, _size633) = iprot.readListBegin() - for _i637 in xrange(_size633): - _elem638 = iprot.readString(); - self.group_names.append(_elem638) + (_etype643, _size640) = iprot.readListBegin() + for _i644 in xrange(_size640): + _elem645 = iprot.readString(); + self.group_names.append(_elem645) iprot.readListEnd() else: iprot.skip(ftype) @@ -15617,8 +15706,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter639 in self.part_vals: - oprot.writeString(iter639) + for iter646 in self.part_vals: + oprot.writeString(iter646) oprot.writeListEnd() oprot.writeFieldEnd() if self.max_parts is not None: @@ -15632,8 +15721,8 @@ if self.group_names is not None: oprot.writeFieldBegin('group_names', TType.LIST, 6) oprot.writeListBegin(TType.STRING, len(self.group_names)) - for iter640 in self.group_names: - oprot.writeString(iter640) + for iter647 in self.group_names: + oprot.writeString(iter647) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -15685,11 +15774,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype644, _size641) = iprot.readListBegin() - for _i645 in xrange(_size641): - _elem646 = Partition() - _elem646.read(iprot) - self.success.append(_elem646) + (_etype651, _size648) = iprot.readListBegin() + for _i652 in xrange(_size648): + _elem653 = Partition() + _elem653.read(iprot) + self.success.append(_elem653) iprot.readListEnd() else: iprot.skip(ftype) @@ -15718,8 +15807,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter647 in self.success: - iter647.write(oprot) + for iter654 in self.success: + iter654.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -15793,10 +15882,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype651, _size648) = iprot.readListBegin() - for _i652 in xrange(_size648): - _elem653 = iprot.readString(); - self.part_vals.append(_elem653) + (_etype658, _size655) = iprot.readListBegin() + for _i659 in xrange(_size655): + _elem660 = iprot.readString(); + self.part_vals.append(_elem660) iprot.readListEnd() else: iprot.skip(ftype) @@ -15826,8 +15915,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter654 in self.part_vals: - oprot.writeString(iter654) + for iter661 in self.part_vals: + oprot.writeString(iter661) oprot.writeListEnd() oprot.writeFieldEnd() if self.max_parts is not None: @@ -15883,10 +15972,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype658, _size655) = iprot.readListBegin() - for _i659 in xrange(_size655): - _elem660 = iprot.readString(); - self.success.append(_elem660) + (_etype665, _size662) = iprot.readListBegin() + for _i666 in xrange(_size662): + _elem667 = iprot.readString(); + self.success.append(_elem667) iprot.readListEnd() else: iprot.skip(ftype) @@ -15915,8 +16004,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter661 in self.success: - oprot.writeString(iter661) + for iter668 in self.success: + oprot.writeString(iter668) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -16072,11 +16161,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype665, _size662) = iprot.readListBegin() - for _i666 in xrange(_size662): - _elem667 = Partition() - _elem667.read(iprot) - self.success.append(_elem667) + (_etype672, _size669) = iprot.readListBegin() + for _i673 in xrange(_size669): + _elem674 = Partition() + _elem674.read(iprot) + self.success.append(_elem674) iprot.readListEnd() else: iprot.skip(ftype) @@ -16105,8 +16194,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter668 in self.success: - iter668.write(oprot) + for iter675 in self.success: + iter675.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -16262,11 +16351,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype672, _size669) = iprot.readListBegin() - for _i673 in xrange(_size669): - _elem674 = PartitionSpec() - _elem674.read(iprot) - self.success.append(_elem674) + (_etype679, _size676) = iprot.readListBegin() + for _i680 in xrange(_size676): + _elem681 = PartitionSpec() + _elem681.read(iprot) + self.success.append(_elem681) iprot.readListEnd() else: iprot.skip(ftype) @@ -16295,8 +16384,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter675 in self.success: - iter675.write(oprot) + for iter682 in self.success: + iter682.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -16514,10 +16603,10 @@ elif fid == 3: if ftype == TType.LIST: self.names = [] - (_etype679, _size676) = iprot.readListBegin() - for _i680 in xrange(_size676): - _elem681 = iprot.readString(); - self.names.append(_elem681) + (_etype686, _size683) = iprot.readListBegin() + for _i687 in xrange(_size683): + _elem688 = iprot.readString(); + self.names.append(_elem688) iprot.readListEnd() else: iprot.skip(ftype) @@ -16542,8 +16631,8 @@ if self.names is not None: oprot.writeFieldBegin('names', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.names)) - for iter682 in self.names: - oprot.writeString(iter682) + for iter689 in self.names: + oprot.writeString(iter689) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -16595,11 +16684,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype686, _size683) = iprot.readListBegin() - for _i687 in xrange(_size683): - _elem688 = Partition() - _elem688.read(iprot) - self.success.append(_elem688) + (_etype693, _size690) = iprot.readListBegin() + for _i694 in xrange(_size690): + _elem695 = Partition() + _elem695.read(iprot) + self.success.append(_elem695) iprot.readListEnd() else: iprot.skip(ftype) @@ -16628,8 +16717,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter689 in self.success: - iter689.write(oprot) + for iter696 in self.success: + iter696.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -16859,11 +16948,11 @@ elif fid == 3: if ftype == TType.LIST: self.new_parts = [] - (_etype693, _size690) = iprot.readListBegin() - for _i694 in xrange(_size690): - _elem695 = Partition() - _elem695.read(iprot) - self.new_parts.append(_elem695) + (_etype700, _size697) = iprot.readListBegin() + for _i701 in xrange(_size697): + _elem702 = Partition() + _elem702.read(iprot) + self.new_parts.append(_elem702) iprot.readListEnd() else: iprot.skip(ftype) @@ -16888,8 +16977,8 @@ if self.new_parts is not None: oprot.writeFieldBegin('new_parts', TType.LIST, 3) oprot.writeListBegin(TType.STRUCT, len(self.new_parts)) - for iter696 in self.new_parts: - iter696.write(oprot) + for iter703 in self.new_parts: + iter703.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -17201,10 +17290,10 @@ elif fid == 3: if ftype == TType.LIST: self.part_vals = [] - (_etype700, _size697) = iprot.readListBegin() - for _i701 in xrange(_size697): - _elem702 = iprot.readString(); - self.part_vals.append(_elem702) + (_etype707, _size704) = iprot.readListBegin() + for _i708 in xrange(_size704): + _elem709 = iprot.readString(); + self.part_vals.append(_elem709) iprot.readListEnd() else: iprot.skip(ftype) @@ -17235,8 +17324,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter703 in self.part_vals: - oprot.writeString(iter703) + for iter710 in self.part_vals: + oprot.writeString(iter710) oprot.writeListEnd() oprot.writeFieldEnd() if self.new_part is not None: @@ -17364,10 +17453,10 @@ if fid == 1: if ftype == TType.LIST: self.part_vals = [] - (_etype707, _size704) = iprot.readListBegin() - for _i708 in xrange(_size704): - _elem709 = iprot.readString(); - self.part_vals.append(_elem709) + (_etype714, _size711) = iprot.readListBegin() + for _i715 in xrange(_size711): + _elem716 = iprot.readString(); + self.part_vals.append(_elem716) iprot.readListEnd() else: iprot.skip(ftype) @@ -17389,8 +17478,8 @@ if self.part_vals is not None: oprot.writeFieldBegin('part_vals', TType.LIST, 1) oprot.writeListBegin(TType.STRING, len(self.part_vals)) - for iter710 in self.part_vals: - oprot.writeString(iter710) + for iter717 in self.part_vals: + oprot.writeString(iter717) oprot.writeListEnd() oprot.writeFieldEnd() if self.throw_exception is not None: @@ -17719,10 +17808,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype714, _size711) = iprot.readListBegin() - for _i715 in xrange(_size711): - _elem716 = iprot.readString(); - self.success.append(_elem716) + (_etype721, _size718) = iprot.readListBegin() + for _i722 in xrange(_size718): + _elem723 = iprot.readString(); + self.success.append(_elem723) iprot.readListEnd() else: iprot.skip(ftype) @@ -17745,8 +17834,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter717 in self.success: - oprot.writeString(iter717) + for iter724 in self.success: + oprot.writeString(iter724) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -17859,11 +17948,11 @@ if fid == 0: if ftype == TType.MAP: self.success = {} - (_ktype719, _vtype720, _size718 ) = iprot.readMapBegin() - for _i722 in xrange(_size718): - _key723 = iprot.readString(); - _val724 = iprot.readString(); - self.success[_key723] = _val724 + (_ktype726, _vtype727, _size725 ) = iprot.readMapBegin() + for _i729 in xrange(_size725): + _key730 = iprot.readString(); + _val731 = iprot.readString(); + self.success[_key730] = _val731 iprot.readMapEnd() else: iprot.skip(ftype) @@ -17886,9 +17975,9 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.MAP, 0) oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success)) - for kiter725,viter726 in self.success.items(): - oprot.writeString(kiter725) - oprot.writeString(viter726) + for kiter732,viter733 in self.success.items(): + oprot.writeString(kiter732) + oprot.writeString(viter733) oprot.writeMapEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -17958,11 +18047,11 @@ elif fid == 3: if ftype == TType.MAP: self.part_vals = {} - (_ktype728, _vtype729, _size727 ) = iprot.readMapBegin() - for _i731 in xrange(_size727): - _key732 = iprot.readString(); - _val733 = iprot.readString(); - self.part_vals[_key732] = _val733 + (_ktype735, _vtype736, _size734 ) = iprot.readMapBegin() + for _i738 in xrange(_size734): + _key739 = iprot.readString(); + _val740 = iprot.readString(); + self.part_vals[_key739] = _val740 iprot.readMapEnd() else: iprot.skip(ftype) @@ -17992,9 +18081,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 kiter734,viter735 in self.part_vals.items(): - oprot.writeString(kiter734) - oprot.writeString(viter735) + for kiter741,viter742 in self.part_vals.items(): + oprot.writeString(kiter741) + oprot.writeString(viter742) oprot.writeMapEnd() oprot.writeFieldEnd() if self.eventType is not None: @@ -18190,11 +18279,11 @@ elif fid == 3: if ftype == TType.MAP: self.part_vals = {} - (_ktype737, _vtype738, _size736 ) = iprot.readMapBegin() - for _i740 in xrange(_size736): - _key741 = iprot.readString(); - _val742 = iprot.readString(); - self.part_vals[_key741] = _val742 + (_ktype744, _vtype745, _size743 ) = iprot.readMapBegin() + for _i747 in xrange(_size743): + _key748 = iprot.readString(); + _val749 = iprot.readString(); + self.part_vals[_key748] = _val749 iprot.readMapEnd() else: iprot.skip(ftype) @@ -18224,9 +18313,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 kiter743,viter744 in self.part_vals.items(): - oprot.writeString(kiter743) - oprot.writeString(viter744) + for kiter750,viter751 in self.part_vals.items(): + oprot.writeString(kiter750) + oprot.writeString(viter751) oprot.writeMapEnd() oprot.writeFieldEnd() if self.eventType is not None: @@ -19198,11 +19287,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype748, _size745) = iprot.readListBegin() - for _i749 in xrange(_size745): - _elem750 = Index() - _elem750.read(iprot) - self.success.append(_elem750) + (_etype755, _size752) = iprot.readListBegin() + for _i756 in xrange(_size752): + _elem757 = Index() + _elem757.read(iprot) + self.success.append(_elem757) iprot.readListEnd() else: iprot.skip(ftype) @@ -19231,8 +19320,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter751 in self.success: - iter751.write(oprot) + for iter758 in self.success: + iter758.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -19373,10 +19462,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype755, _size752) = iprot.readListBegin() - for _i756 in xrange(_size752): - _elem757 = iprot.readString(); - self.success.append(_elem757) + (_etype762, _size759) = iprot.readListBegin() + for _i763 in xrange(_size759): + _elem764 = iprot.readString(); + self.success.append(_elem764) iprot.readListEnd() else: iprot.skip(ftype) @@ -19399,8 +19488,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter758 in self.success: - oprot.writeString(iter758) + for iter765 in self.success: + oprot.writeString(iter765) oprot.writeListEnd() oprot.writeFieldEnd() if self.o2 is not None: @@ -21754,10 +21843,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype762, _size759) = iprot.readListBegin() - for _i763 in xrange(_size759): - _elem764 = iprot.readString(); - self.success.append(_elem764) + (_etype769, _size766) = iprot.readListBegin() + for _i770 in xrange(_size766): + _elem771 = iprot.readString(); + self.success.append(_elem771) iprot.readListEnd() else: iprot.skip(ftype) @@ -21780,8 +21869,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter765 in self.success: - oprot.writeString(iter765) + for iter772 in self.success: + oprot.writeString(iter772) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -22299,10 +22388,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype769, _size766) = iprot.readListBegin() - for _i770 in xrange(_size766): - _elem771 = iprot.readString(); - self.success.append(_elem771) + (_etype776, _size773) = iprot.readListBegin() + for _i777 in xrange(_size773): + _elem778 = iprot.readString(); + self.success.append(_elem778) iprot.readListEnd() else: iprot.skip(ftype) @@ -22325,8 +22414,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter772 in self.success: - oprot.writeString(iter772) + for iter779 in self.success: + oprot.writeString(iter779) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -22799,11 +22888,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype776, _size773) = iprot.readListBegin() - for _i777 in xrange(_size773): - _elem778 = Role() - _elem778.read(iprot) - self.success.append(_elem778) + (_etype783, _size780) = iprot.readListBegin() + for _i784 in xrange(_size780): + _elem785 = Role() + _elem785.read(iprot) + self.success.append(_elem785) iprot.readListEnd() else: iprot.skip(ftype) @@ -22826,8 +22915,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter779 in self.success: - iter779.write(oprot) + for iter786 in self.success: + iter786.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -23297,10 +23386,10 @@ elif fid == 3: if ftype == TType.LIST: self.group_names = [] - (_etype783, _size780) = iprot.readListBegin() - for _i784 in xrange(_size780): - _elem785 = iprot.readString(); - self.group_names.append(_elem785) + (_etype790, _size787) = iprot.readListBegin() + for _i791 in xrange(_size787): + _elem792 = iprot.readString(); + self.group_names.append(_elem792) iprot.readListEnd() else: iprot.skip(ftype) @@ -23325,8 +23414,8 @@ if self.group_names is not None: oprot.writeFieldBegin('group_names', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.group_names)) - for iter786 in self.group_names: - oprot.writeString(iter786) + for iter793 in self.group_names: + oprot.writeString(iter793) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -23533,11 +23622,11 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype790, _size787) = iprot.readListBegin() - for _i791 in xrange(_size787): - _elem792 = HiveObjectPrivilege() - _elem792.read(iprot) - self.success.append(_elem792) + (_etype797, _size794) = iprot.readListBegin() + for _i798 in xrange(_size794): + _elem799 = HiveObjectPrivilege() + _elem799.read(iprot) + self.success.append(_elem799) iprot.readListEnd() else: iprot.skip(ftype) @@ -23560,8 +23649,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRUCT, len(self.success)) - for iter793 in self.success: - iter793.write(oprot) + for iter800 in self.success: + iter800.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -24020,10 +24109,10 @@ elif fid == 2: if ftype == TType.LIST: self.group_names = [] - (_etype797, _size794) = iprot.readListBegin() - for _i798 in xrange(_size794): - _elem799 = iprot.readString(); - self.group_names.append(_elem799) + (_etype804, _size801) = iprot.readListBegin() + for _i805 in xrange(_size801): + _elem806 = iprot.readString(); + self.group_names.append(_elem806) iprot.readListEnd() else: iprot.skip(ftype) @@ -24044,8 +24133,8 @@ if self.group_names is not None: oprot.writeFieldBegin('group_names', TType.LIST, 2) oprot.writeListBegin(TType.STRING, len(self.group_names)) - for iter800 in self.group_names: - oprot.writeString(iter800) + for iter807 in self.group_names: + oprot.writeString(iter807) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -24094,10 +24183,10 @@ if fid == 0: if ftype == TType.LIST: self.success = [] - (_etype804, _size801) = iprot.readListBegin() - for _i805 in xrange(_size801): - _elem806 = iprot.readString(); - self.success.append(_elem806) + (_etype811, _size808) = iprot.readListBegin() + for _i812 in xrange(_size808): + _elem813 = iprot.readString(); + self.success.append(_elem813) iprot.readListEnd() else: iprot.skip(ftype) @@ -24120,8 +24209,8 @@ if self.success is not None: oprot.writeFieldBegin('success', TType.LIST, 0) oprot.writeListBegin(TType.STRING, len(self.success)) - for iter807 in self.success: - oprot.writeString(iter807) + for iter814 in self.success: + oprot.writeString(iter814) oprot.writeListEnd() oprot.writeFieldEnd() if self.o1 is not None: @@ -26180,3 +26269,226 @@ def __ne__(self, other): return not (self == other) + +class getNextNotification_args: + """ + Attributes: + - rqst + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'rqst', (NotificationEventRequest, NotificationEventRequest.thrift_spec), None, ), # 1 + ) + + def __init__(self, rqst=None,): + self.rqst = rqst + + 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.STRUCT: + self.rqst = NotificationEventRequest() + self.rqst.read(iprot) + 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('getNextNotification_args') + if self.rqst is not None: + oprot.writeFieldBegin('rqst', TType.STRUCT, 1) + self.rqst.write(oprot) + 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 getNextNotification_result: + """ + Attributes: + - success + """ + + thrift_spec = ( + (0, TType.STRUCT, 'success', (NotificationEventResponse, NotificationEventResponse.thrift_spec), None, ), # 0 + ) + + def __init__(self, success=None,): + self.success = success + + 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 == 0: + if ftype == TType.STRUCT: + self.success = NotificationEventResponse() + self.success.read(iprot) + 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('getNextNotification_result') + if self.success is not None: + oprot.writeFieldBegin('success', TType.STRUCT, 0) + self.success.write(oprot) + 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 getCurrentNotificationEventId_args: + + thrift_spec = ( + ) + + 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 + 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('getCurrentNotificationEventId_args') + 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 getCurrentNotificationEventId_result: + """ + Attributes: + - success + """ + + thrift_spec = ( + (0, TType.STRUCT, 'success', (CurrentNotificationEventId, CurrentNotificationEventId.thrift_spec), None, ), # 0 + ) + + def __init__(self, success=None,): + self.success = success + + 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 == 0: + if ftype == TType.STRUCT: + self.success = CurrentNotificationEventId() + self.success.read(iprot) + 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('getCurrentNotificationEventId_result') + if self.success is not None: + oprot.writeFieldBegin('success', TType.STRUCT, 0) + self.success.write(oprot) + 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) Index: metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py =================================================================== --- metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py (revision 1650429) +++ metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py (working copy) @@ -8143,6 +8143,341 @@ def __ne__(self, other): return not (self == other) +class NotificationEventRequest: + """ + Attributes: + - lastEvent + - maxEvents + """ + + thrift_spec = ( + None, # 0 + (1, TType.I64, 'lastEvent', None, None, ), # 1 + (2, TType.I32, 'maxEvents', None, None, ), # 2 + ) + + def __init__(self, lastEvent=None, maxEvents=None,): + self.lastEvent = lastEvent + self.maxEvents = maxEvents + + 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.I64: + self.lastEvent = iprot.readI64(); + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.maxEvents = iprot.readI32(); + 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('NotificationEventRequest') + if self.lastEvent is not None: + oprot.writeFieldBegin('lastEvent', TType.I64, 1) + oprot.writeI64(self.lastEvent) + oprot.writeFieldEnd() + if self.maxEvents is not None: + oprot.writeFieldBegin('maxEvents', TType.I32, 2) + oprot.writeI32(self.maxEvents) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + if self.lastEvent is None: + raise TProtocol.TProtocolException(message='Required field lastEvent is unset!') + 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 NotificationEvent: + """ + Attributes: + - eventId + - eventTime + - eventType + - dbName + - tableName + - message + """ + + thrift_spec = ( + None, # 0 + (1, TType.I64, 'eventId', None, None, ), # 1 + (2, TType.I32, 'eventTime', None, None, ), # 2 + (3, TType.STRING, 'eventType', None, None, ), # 3 + (4, TType.STRING, 'dbName', None, None, ), # 4 + (5, TType.STRING, 'tableName', None, None, ), # 5 + (6, TType.STRING, 'message', None, None, ), # 6 + ) + + def __init__(self, eventId=None, eventTime=None, eventType=None, dbName=None, tableName=None, message=None,): + self.eventId = eventId + self.eventTime = eventTime + self.eventType = eventType + self.dbName = dbName + self.tableName = tableName + self.message = message + + 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.I64: + self.eventId = iprot.readI64(); + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.eventTime = iprot.readI32(); + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRING: + self.eventType = iprot.readString(); + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRING: + self.dbName = iprot.readString(); + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRING: + self.tableName = iprot.readString(); + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.STRING: + self.message = 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('NotificationEvent') + if self.eventId is not None: + oprot.writeFieldBegin('eventId', TType.I64, 1) + oprot.writeI64(self.eventId) + oprot.writeFieldEnd() + if self.eventTime is not None: + oprot.writeFieldBegin('eventTime', TType.I32, 2) + oprot.writeI32(self.eventTime) + oprot.writeFieldEnd() + if self.eventType is not None: + oprot.writeFieldBegin('eventType', TType.STRING, 3) + oprot.writeString(self.eventType) + oprot.writeFieldEnd() + if self.dbName is not None: + oprot.writeFieldBegin('dbName', TType.STRING, 4) + oprot.writeString(self.dbName) + oprot.writeFieldEnd() + if self.tableName is not None: + oprot.writeFieldBegin('tableName', TType.STRING, 5) + oprot.writeString(self.tableName) + oprot.writeFieldEnd() + if self.message is not None: + oprot.writeFieldBegin('message', TType.STRING, 6) + oprot.writeString(self.message) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + if self.eventId is None: + raise TProtocol.TProtocolException(message='Required field eventId is unset!') + if self.eventTime is None: + raise TProtocol.TProtocolException(message='Required field eventTime is unset!') + if self.eventType is None: + raise TProtocol.TProtocolException(message='Required field eventType is unset!') + if self.message is None: + raise TProtocol.TProtocolException(message='Required field message is unset!') + 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 NotificationEventResponse: + """ + Attributes: + - events + """ + + thrift_spec = ( + None, # 0 + (1, TType.LIST, 'events', (TType.STRUCT,(NotificationEvent, NotificationEvent.thrift_spec)), None, ), # 1 + ) + + def __init__(self, events=None,): + self.events = events + + 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.LIST: + self.events = [] + (_etype437, _size434) = iprot.readListBegin() + for _i438 in xrange(_size434): + _elem439 = NotificationEvent() + _elem439.read(iprot) + self.events.append(_elem439) + iprot.readListEnd() + 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('NotificationEventResponse') + if self.events is not None: + oprot.writeFieldBegin('events', TType.LIST, 1) + oprot.writeListBegin(TType.STRUCT, len(self.events)) + for iter440 in self.events: + iter440.write(oprot) + oprot.writeListEnd() + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + if self.events is None: + raise TProtocol.TProtocolException(message='Required field events is unset!') + 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 CurrentNotificationEventId: + """ + Attributes: + - eventId + """ + + thrift_spec = ( + None, # 0 + (1, TType.I64, 'eventId', None, None, ), # 1 + ) + + def __init__(self, eventId=None,): + self.eventId = eventId + + 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.I64: + self.eventId = iprot.readI64(); + 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('CurrentNotificationEventId') + if self.eventId is not None: + oprot.writeFieldBegin('eventId', TType.I64, 1) + oprot.writeI64(self.eventId) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + if self.eventId is None: + raise TProtocol.TProtocolException(message='Required field eventId is unset!') + 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 MetaException(TException): """ Attributes: Index: metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb =================================================================== --- metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb (revision 1650429) +++ metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb (working copy) @@ -1986,6 +1986,89 @@ ::Thrift::Struct.generate_accessors self end +class NotificationEventRequest + include ::Thrift::Struct, ::Thrift::Struct_Union + LASTEVENT = 1 + MAXEVENTS = 2 + + FIELDS = { + LASTEVENT => {:type => ::Thrift::Types::I64, :name => 'lastEvent'}, + MAXEVENTS => {:type => ::Thrift::Types::I32, :name => 'maxEvents', :optional => true} + } + + def struct_fields; FIELDS; end + + def validate + raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field lastEvent is unset!') unless @lastEvent + end + + ::Thrift::Struct.generate_accessors self +end + +class NotificationEvent + include ::Thrift::Struct, ::Thrift::Struct_Union + EVENTID = 1 + EVENTTIME = 2 + EVENTTYPE = 3 + DBNAME = 4 + TABLENAME = 5 + MESSAGE = 6 + + FIELDS = { + EVENTID => {:type => ::Thrift::Types::I64, :name => 'eventId'}, + EVENTTIME => {:type => ::Thrift::Types::I32, :name => 'eventTime'}, + EVENTTYPE => {:type => ::Thrift::Types::STRING, :name => 'eventType'}, + DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbName', :optional => true}, + TABLENAME => {:type => ::Thrift::Types::STRING, :name => 'tableName', :optional => true}, + MESSAGE => {:type => ::Thrift::Types::STRING, :name => 'message'} + } + + def struct_fields; FIELDS; end + + def validate + raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field eventId is unset!') unless @eventId + raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field eventTime is unset!') unless @eventTime + raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field eventType is unset!') unless @eventType + raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field message is unset!') unless @message + end + + ::Thrift::Struct.generate_accessors self +end + +class NotificationEventResponse + include ::Thrift::Struct, ::Thrift::Struct_Union + EVENTS = 1 + + FIELDS = { + EVENTS => {:type => ::Thrift::Types::LIST, :name => 'events', :element => {:type => ::Thrift::Types::STRUCT, :class => ::NotificationEvent}} + } + + def struct_fields; FIELDS; end + + def validate + raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field events is unset!') unless @events + end + + ::Thrift::Struct.generate_accessors self +end + +class CurrentNotificationEventId + include ::Thrift::Struct, ::Thrift::Struct_Union + EVENTID = 1 + + FIELDS = { + EVENTID => {:type => ::Thrift::Types::I64, :name => 'eventId'} + } + + def struct_fields; FIELDS; end + + def validate + raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field eventId is unset!') unless @eventId + end + + ::Thrift::Struct.generate_accessors self +end + class MetaException < ::Thrift::Exception include ::Thrift::Struct, ::Thrift::Struct_Union def initialize(message=nil) Index: metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb =================================================================== --- metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb (revision 1650429) +++ metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb (working copy) @@ -1977,6 +1977,36 @@ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'show_compact failed: unknown result') end + def getNextNotification(rqst) + send_getNextNotification(rqst) + return recv_getNextNotification() + end + + def send_getNextNotification(rqst) + send_message('getNextNotification', GetNextNotification_args, :rqst => rqst) + end + + def recv_getNextNotification() + result = receive_message(GetNextNotification_result) + return result.success unless result.success.nil? + raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getNextNotification failed: unknown result') + end + + def getCurrentNotificationEventId() + send_getCurrentNotificationEventId() + return recv_getCurrentNotificationEventId() + end + + def send_getCurrentNotificationEventId() + send_message('getCurrentNotificationEventId', GetCurrentNotificationEventId_args) + end + + def recv_getCurrentNotificationEventId() + result = receive_message(GetCurrentNotificationEventId_result) + return result.success unless result.success.nil? + raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getCurrentNotificationEventId failed: unknown result') + end + end class Processor < ::FacebookService::Processor @@ -3493,6 +3523,20 @@ write_result(result, oprot, 'show_compact', seqid) end + def process_getNextNotification(seqid, iprot, oprot) + args = read_args(iprot, GetNextNotification_args) + result = GetNextNotification_result.new() + result.success = @handler.getNextNotification(args.rqst) + write_result(result, oprot, 'getNextNotification', seqid) + end + + def process_getCurrentNotificationEventId(seqid, iprot, oprot) + args = read_args(iprot, GetCurrentNotificationEventId_args) + result = GetCurrentNotificationEventId_result.new() + result.success = @handler.getCurrentNotificationEventId() + write_result(result, oprot, 'getCurrentNotificationEventId', seqid) + end + end # HELPER FUNCTIONS AND STRUCTURES @@ -7981,5 +8025,68 @@ ::Thrift::Struct.generate_accessors self end + class GetNextNotification_args + include ::Thrift::Struct, ::Thrift::Struct_Union + RQST = 1 + + FIELDS = { + RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::NotificationEventRequest} + } + + def struct_fields; FIELDS; end + + def validate + end + + ::Thrift::Struct.generate_accessors self + end + + class GetNextNotification_result + include ::Thrift::Struct, ::Thrift::Struct_Union + SUCCESS = 0 + + FIELDS = { + SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::NotificationEventResponse} + } + + def struct_fields; FIELDS; end + + def validate + end + + ::Thrift::Struct.generate_accessors self + end + + class GetCurrentNotificationEventId_args + include ::Thrift::Struct, ::Thrift::Struct_Union + + FIELDS = { + + } + + def struct_fields; FIELDS; end + + def validate + end + + ::Thrift::Struct.generate_accessors self + end + + class GetCurrentNotificationEventId_result + include ::Thrift::Struct, ::Thrift::Struct_Union + SUCCESS = 0 + + FIELDS = { + SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::CurrentNotificationEventId} + } + + def struct_fields; FIELDS; end + + def validate + end + + ::Thrift::Struct.generate_accessors self + end + end Index: metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java =================================================================== --- metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java (revision 1650429) +++ metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java (working copy) @@ -77,6 +77,7 @@ import org.apache.hadoop.hive.metastore.api.CommitTxnRequest; import org.apache.hadoop.hive.metastore.api.CompactionRequest; import org.apache.hadoop.hive.metastore.api.ConfigValSecurityException; +import org.apache.hadoop.hive.metastore.api.CurrentNotificationEventId; import org.apache.hadoop.hive.metastore.api.Database; import org.apache.hadoop.hive.metastore.api.DropPartitionsExpr; import org.apache.hadoop.hive.metastore.api.DropPartitionsRequest; @@ -111,6 +112,8 @@ import org.apache.hadoop.hive.metastore.api.NoSuchLockException; import org.apache.hadoop.hive.metastore.api.NoSuchObjectException; import org.apache.hadoop.hive.metastore.api.NoSuchTxnException; +import org.apache.hadoop.hive.metastore.api.NotificationEventRequest; +import org.apache.hadoop.hive.metastore.api.NotificationEventResponse; import org.apache.hadoop.hive.metastore.api.OpenTxnRequest; import org.apache.hadoop.hive.metastore.api.OpenTxnsResponse; import org.apache.hadoop.hive.metastore.api.Partition; @@ -201,7 +204,9 @@ import org.apache.hadoop.util.StringUtils; import org.apache.thrift.TException; import org.apache.thrift.TProcessor; +import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.protocol.TCompactProtocol; +import org.apache.thrift.protocol.TProtocolFactory; import org.apache.thrift.server.TServer; import org.apache.thrift.server.TThreadPoolServer; import org.apache.thrift.transport.TFramedTransport; @@ -5579,6 +5584,19 @@ } return ret; } + + @Override + public NotificationEventResponse getNextNotification(NotificationEventRequest rqst) + throws TException { + RawStore ms = getMS(); + return ms.getNextNotification(rqst); + } + + @Override + public CurrentNotificationEventId getCurrentNotificationEventId() throws TException { + RawStore ms = getMS(); + return ms.getCurrentNotificationEventId(); + } } @@ -5798,6 +5816,7 @@ int maxWorkerThreads = conf.getIntVar(HiveConf.ConfVars.METASTORESERVERMAXTHREADS); boolean tcpKeepAlive = conf.getBoolVar(HiveConf.ConfVars.METASTORE_TCP_KEEP_ALIVE); boolean useFramedTransport = conf.getBoolVar(ConfVars.METASTORE_USE_THRIFT_FRAMED_TRANSPORT); + boolean useCompactProtocol = conf.getBoolVar(ConfVars.METASTORE_USE_THRIFT_COMPACT_PROTOCOL); useSasl = conf.getBoolVar(HiveConf.ConfVars.METASTORE_USE_THRIFT_SASL); TServerTransport serverTransport = tcpKeepAlive ? @@ -5805,6 +5824,15 @@ TProcessor processor; TTransportFactory transFactory; + final TProtocolFactory protocolFactory; + final TProtocolFactory inputProtoFactory; + if (useCompactProtocol) { + protocolFactory = new TCompactProtocol.Factory(); + inputProtoFactory = new TCompactProtocol.Factory(maxMessageSize, maxMessageSize); + } else { + protocolFactory = new TBinaryProtocol.Factory(); + inputProtoFactory = new TBinaryProtocol.Factory(true, true, maxMessageSize, maxMessageSize); + } HMSHandler baseHandler = new HiveMetaStore.HMSHandler("new db based metaserver", conf, false); IHMSHandler handler = newRetryingHMSHandler(baseHandler, conf); @@ -5844,9 +5872,8 @@ TThreadPoolServer.Args args = new TThreadPoolServer.Args(serverTransport) .processor(processor) .transportFactory(transFactory) - .protocolFactory(new TCompactProtocol.Factory()) - .inputProtocolFactory( - new TCompactProtocol.Factory(maxMessageSize, maxMessageSize)) + .protocolFactory(protocolFactory) + .inputProtocolFactory(inputProtoFactory) .minWorkerThreads(minWorkerThreads) .maxWorkerThreads(maxWorkerThreads); Index: metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java =================================================================== --- metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java (revision 1650429) +++ metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java (working copy) @@ -62,6 +62,7 @@ import org.apache.hadoop.hive.metastore.api.CompactionRequest; import org.apache.hadoop.hive.metastore.api.CompactionType; import org.apache.hadoop.hive.metastore.api.ConfigValSecurityException; +import org.apache.hadoop.hive.metastore.api.CurrentNotificationEventId; import org.apache.hadoop.hive.metastore.api.Database; import org.apache.hadoop.hive.metastore.api.DropPartitionsExpr; import org.apache.hadoop.hive.metastore.api.DropPartitionsRequest; @@ -94,6 +95,9 @@ import org.apache.hadoop.hive.metastore.api.NoSuchLockException; import org.apache.hadoop.hive.metastore.api.NoSuchObjectException; import org.apache.hadoop.hive.metastore.api.NoSuchTxnException; +import org.apache.hadoop.hive.metastore.api.NotificationEvent; +import org.apache.hadoop.hive.metastore.api.NotificationEventRequest; +import org.apache.hadoop.hive.metastore.api.NotificationEventResponse; import org.apache.hadoop.hive.metastore.api.OpenTxnRequest; import org.apache.hadoop.hive.metastore.api.OpenTxnsResponse; import org.apache.hadoop.hive.metastore.api.Partition; @@ -131,7 +135,9 @@ import org.apache.hadoop.util.StringUtils; import org.apache.thrift.TApplicationException; import org.apache.thrift.TException; +import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.protocol.TCompactProtocol; +import org.apache.thrift.protocol.TProtocol; import org.apache.thrift.transport.TFramedTransport; import org.apache.thrift.transport.TSocket; import org.apache.thrift.transport.TTransport; @@ -345,6 +351,7 @@ TTransportException tte = null; boolean useSasl = conf.getBoolVar(ConfVars.METASTORE_USE_THRIFT_SASL); boolean useFramedTransport = conf.getBoolVar(ConfVars.METASTORE_USE_THRIFT_FRAMED_TRANSPORT); + boolean useCompactProtocol = conf.getBoolVar(ConfVars.METASTORE_USE_THRIFT_COMPACT_PROTOCOL); int clientSocketTimeout = (int) conf.getTimeVar( ConfVars.METASTORE_CLIENT_SOCKET_TIMEOUT, TimeUnit.MILLISECONDS); @@ -386,8 +393,13 @@ } else if (useFramedTransport) { transport = new TFramedTransport(transport); } - - client = new ThriftHiveMetastore.Client(new TCompactProtocol(transport)); + final TProtocol protocol; + if (useCompactProtocol) { + protocol = new TCompactProtocol(transport); + } else { + protocol = new TBinaryProtocol(transport); + } + client = new ThriftHiveMetastore.Client(protocol); try { transport.open(); isConnected = true; @@ -1421,7 +1433,8 @@ @Override public Partition getPartition(String db, String tableName, String partName) throws MetaException, TException, UnknownTableException, NoSuchObjectException { - return deepCopy(filterHook.filterPartition(client.get_partition_by_name(db, tableName, partName))); + return deepCopy( + filterHook.filterPartition(client.get_partition_by_name(db, tableName, partName))); } public Partition appendPartitionByName(String dbName, String tableName, String partName) @@ -1829,6 +1842,31 @@ return client.show_compact(new ShowCompactRequest()); } + @Override + public NotificationEventResponse getNextNotification(long lastEventId, int maxEvents, + NotificationFilter filter) throws TException { + NotificationEventRequest rqst = new NotificationEventRequest(lastEventId); + rqst.setMaxEvents(maxEvents); + NotificationEventResponse rsp = client.getNextNotification(rqst); + LOG.debug("Got back " + rsp.getEventsSize() + " events"); + if (filter == null) { + return rsp; + } else { + NotificationEventResponse filtered = new NotificationEventResponse(); + if (rsp != null && rsp.getEvents() != null) { + for (NotificationEvent e : rsp.getEvents()) { + if (filter.accept(e)) filtered.addToEvents(e); + } + } + return filtered; + } + } + + @Override + public CurrentNotificationEventId getCurrentNotificationEventId() throws TException { + return client.getCurrentNotificationEventId(); + } + /** * Creates a synchronized wrapper for any {@link IMetaStoreClient}. * This may be used by multi-threaded applications until we have Index: metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java =================================================================== --- metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java (revision 1650429) +++ metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java (working copy) @@ -21,12 +21,16 @@ import org.apache.hadoop.hive.common.ValidTxnList; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.metastore.api.CompactionType; +import org.apache.hadoop.hive.metastore.api.CurrentNotificationEventId; import org.apache.hadoop.hive.metastore.api.GetOpenTxnsInfoResponse; import org.apache.hadoop.hive.metastore.api.HeartbeatTxnRangeResponse; import org.apache.hadoop.hive.metastore.api.LockRequest; import org.apache.hadoop.hive.metastore.api.LockResponse; import org.apache.hadoop.hive.metastore.api.NoSuchLockException; import org.apache.hadoop.hive.metastore.api.NoSuchTxnException; +import org.apache.hadoop.hive.metastore.api.NotificationEvent; +import org.apache.hadoop.hive.metastore.api.NotificationEventRequest; +import org.apache.hadoop.hive.metastore.api.NotificationEventResponse; import org.apache.hadoop.hive.metastore.api.OpenTxnsResponse; import org.apache.hadoop.hive.metastore.api.PartitionSpec; import org.apache.hadoop.hive.metastore.api.ShowCompactResponse; @@ -1306,6 +1310,41 @@ */ ShowCompactResponse showCompactions() throws TException; + /** + * A filter provided by the client that determines if a given notification event should be + * returned. + */ + interface NotificationFilter { + /** + * Whether a notification event should be accepted + * @param event + * @return if true, event will be added to list, if false it will be ignored + */ + boolean accept(NotificationEvent event); + } + + /** + * Get the next set of notifications from the database. + * @param lastEventId The last event id that was consumed by this reader. The returned + * notifications will start at the next eventId available after this eventId. + * @param maxEvents Maximum number of events to return. If < 1, then all available events will + * be returned. + * @param filter User provided filter to remove unwanted events. If null, all events will be + * returned. + * @return list of notifications, sorted by eventId. It is guaranteed that the events are in + * the order that the operations were done on the database. + * @throws TException + */ + NotificationEventResponse getNextNotification(long lastEventId, int maxEvents, + NotificationFilter filter) throws TException; + + /** + * Get the last used notification event id. + * @return last used id + * @throws TException + */ + CurrentNotificationEventId getCurrentNotificationEventId() throws TException; + class IncompatibleMetastoreException extends MetaException { IncompatibleMetastoreException(String message) { super(message); Index: metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java =================================================================== --- metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java (revision 1650429) +++ metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java (working copy) @@ -67,6 +67,7 @@ import org.apache.hadoop.hive.metastore.api.ColumnStatistics; import org.apache.hadoop.hive.metastore.api.ColumnStatisticsDesc; import org.apache.hadoop.hive.metastore.api.ColumnStatisticsObj; +import org.apache.hadoop.hive.metastore.api.CurrentNotificationEventId; import org.apache.hadoop.hive.metastore.api.Database; import org.apache.hadoop.hive.metastore.api.FieldSchema; import org.apache.hadoop.hive.metastore.api.Function; @@ -80,6 +81,9 @@ import org.apache.hadoop.hive.metastore.api.InvalidPartitionException; import org.apache.hadoop.hive.metastore.api.MetaException; import org.apache.hadoop.hive.metastore.api.NoSuchObjectException; +import org.apache.hadoop.hive.metastore.api.NotificationEvent; +import org.apache.hadoop.hive.metastore.api.NotificationEventRequest; +import org.apache.hadoop.hive.metastore.api.NotificationEventResponse; import org.apache.hadoop.hive.metastore.api.Order; import org.apache.hadoop.hive.metastore.api.Partition; import org.apache.hadoop.hive.metastore.api.PartitionEventType; @@ -107,6 +111,8 @@ import org.apache.hadoop.hive.metastore.model.MGlobalPrivilege; import org.apache.hadoop.hive.metastore.model.MIndex; import org.apache.hadoop.hive.metastore.model.MMasterKey; +import org.apache.hadoop.hive.metastore.model.MNotificationLog; +import org.apache.hadoop.hive.metastore.model.MNotificationNextId; import org.apache.hadoop.hive.metastore.model.MOrder; import org.apache.hadoop.hive.metastore.model.MPartition; import org.apache.hadoop.hive.metastore.model.MPartitionColumnPrivilege; @@ -6962,4 +6968,128 @@ } return funcs; } + + @Override + public NotificationEventResponse getNextNotification(NotificationEventRequest rqst) { + boolean commited = false; + try { + openTransaction(); + long lastEvent = rqst.getLastEvent(); + Query query = pm.newQuery(MNotificationLog.class, "eventId > lastEvent"); + query.declareParameters("java.lang.Long lastEvent"); + query.setOrdering("eventId ascending"); + Collection events = (Collection)query.execute(lastEvent); + commited = commitTransaction(); + if (events == null) { + return null; + } + Iterator i = events.iterator(); + NotificationEventResponse result = new NotificationEventResponse(); + int maxEvents = rqst.getMaxEvents() > 0 ? rqst.getMaxEvents() : Integer.MAX_VALUE; + int numEvents = 0; + while (i.hasNext() && numEvents++ < maxEvents) { + result.addToEvents(translateDbToThrift(i.next())); + } + return result; + } finally { + if (!commited) { + rollbackTransaction(); + return null; + } + } + } + + @Override + public void addNotificationEvent(NotificationEvent entry) { + boolean commited = false; + try { + openTransaction(); + Query query = pm.newQuery(MNotificationNextId.class); + Collection ids = (Collection) query.execute(); + MNotificationNextId id = null; + boolean needToPersistId; + if (ids == null || ids.size() == 0) { + id = new MNotificationNextId(1L); + needToPersistId = true; + } else { + id = ids.iterator().next(); + needToPersistId = false; + } + entry.setEventId(id.getNextEventId()); + id.incrementEventId(); + if (needToPersistId) pm.makePersistent(id); + pm.makePersistent(translateThriftToDb(entry)); + commited = commitTransaction(); + } finally { + if (!commited) { + rollbackTransaction(); + } + } + } + + @Override + public void cleanNotificationEvents(int olderThan) { + boolean commited = false; + try { + openTransaction(); + long tmp = System.currentTimeMillis() / 1000 - olderThan; + int tooOld = (tmp > Integer.MAX_VALUE) ? 0 : (int)tmp; + Query query = pm.newQuery(MNotificationLog.class, "eventTime < tooOld"); + query.declareParameters("java.lang.Integer tooOld"); + Collection toBeRemoved = (Collection)query.execute(tooOld); + if (toBeRemoved != null && toBeRemoved.size() > 0) { + pm.deletePersistent(toBeRemoved); + } + commited = commitTransaction(); + } finally { + if (!commited) { + rollbackTransaction(); + } + } + } + + @Override + public CurrentNotificationEventId getCurrentNotificationEventId() { + boolean commited = false; + try { + openTransaction(); + Query query = pm.newQuery(MNotificationNextId.class); + Collection ids = (Collection)query.execute(); + long id = 0; + if (ids != null && ids.size() > 0) { + id = ids.iterator().next().getNextEventId() - 1; + } + commited = commitTransaction(); + return new CurrentNotificationEventId(id); + } finally { + if (!commited) { + rollbackTransaction(); + } + } + } + + private MNotificationLog translateThriftToDb(NotificationEvent entry) { + MNotificationLog dbEntry = new MNotificationLog(); + dbEntry.setEventId(entry.getEventId()); + dbEntry.setEventTime(entry.getEventTime()); + dbEntry.setEventType(entry.getEventType()); + dbEntry.setDbName(entry.getDbName()); + dbEntry.setTableName(entry.getTableName()); + dbEntry.setMessage(entry.getMessage()); + return dbEntry; + } + + private NotificationEvent translateDbToThrift(MNotificationLog dbEvent) { + NotificationEvent event = new NotificationEvent(); + event.setEventId(dbEvent.getEventId()); + event.setEventTime(dbEvent.getEventTime()); + event.setEventType(dbEvent.getEventType()); + event.setDbName(dbEvent.getDbName()); + event.setTableName(dbEvent.getTableName()); + event.setMessage((dbEvent.getMessage())); + return event; + } + + + } Index: metastore/src/java/org/apache/hadoop/hive/metastore/RawStore.java =================================================================== --- metastore/src/java/org/apache/hadoop/hive/metastore/RawStore.java (revision 1650429) +++ metastore/src/java/org/apache/hadoop/hive/metastore/RawStore.java (working copy) @@ -24,11 +24,13 @@ import java.lang.annotation.Target; import java.util.List; import java.util.Map; +import java.util.SortedSet; import org.apache.hadoop.conf.Configurable; import org.apache.hadoop.hive.metastore.api.AggrStats; import org.apache.hadoop.hive.metastore.api.ColumnStatistics; import org.apache.hadoop.hive.metastore.api.ColumnStatisticsObj; +import org.apache.hadoop.hive.metastore.api.CurrentNotificationEventId; import org.apache.hadoop.hive.metastore.api.Database; import org.apache.hadoop.hive.metastore.api.Function; import org.apache.hadoop.hive.metastore.api.HiveObjectPrivilege; @@ -38,6 +40,9 @@ import org.apache.hadoop.hive.metastore.api.InvalidPartitionException; import org.apache.hadoop.hive.metastore.api.MetaException; import org.apache.hadoop.hive.metastore.api.NoSuchObjectException; +import org.apache.hadoop.hive.metastore.api.NotificationEvent; +import org.apache.hadoop.hive.metastore.api.NotificationEventRequest; +import org.apache.hadoop.hive.metastore.api.NotificationEventResponse; import org.apache.hadoop.hive.metastore.api.Partition; import org.apache.hadoop.hive.metastore.api.PartitionEventType; import org.apache.hadoop.hive.metastore.api.PrincipalPrivilegeSet; @@ -556,5 +561,33 @@ public AggrStats get_aggr_stats_for(String dbName, String tblName, List partNames, List colNames) throws MetaException, NoSuchObjectException; + + /** + * Get the next notification event. + * @param rqst Request containing information on the last processed notification. + * @return list of notifications, sorted by eventId + */ + public NotificationEventResponse getNextNotification(NotificationEventRequest rqst); + + + /** + * Add a notification entry. This should only be called from inside the metastore + * @param event the notification to add + */ + public void addNotificationEvent(NotificationEvent event); + + /** + * Remove older notification events. + * @param olderThan Remove any events older than a given number of seconds + */ + public void cleanNotificationEvents(int olderThan); + + /** + * Get the last issued notification event id. This is intended for use by the export command + * so that users can determine the state of the system at the point of the export, + * and determine which notification events happened before or after the export. + * @return + */ + public CurrentNotificationEventId getCurrentNotificationEventId(); } Index: metastore/src/model/org/apache/hadoop/hive/metastore/model/MNotificationLog.java =================================================================== --- metastore/src/model/org/apache/hadoop/hive/metastore/model/MNotificationLog.java (revision 0) +++ metastore/src/model/org/apache/hadoop/hive/metastore/model/MNotificationLog.java (working copy) @@ -0,0 +1,89 @@ +/** + * 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.metastore.model; + +public class MNotificationLog { + + private long eventId; // This is not the datanucleus id, but the id assigned by the sequence + private int eventTime; + private String eventType; + private String dbName; + private String tableName; + private String message; + + public MNotificationLog() { + } + + public MNotificationLog(int eventId, String eventType, String dbName, String tableName, + String message) { + this.eventId = eventId; + this.eventType = eventType; + this.dbName = dbName; + this.tableName = tableName; + this.message = message; + } + + public void setEventId(long eventId) { + this.eventId = eventId; + } + + public long getEventId() { + return eventId; + + } + + public int getEventTime() { + return eventTime; + } + + public void setEventTime(int eventTime) { + this.eventTime = eventTime; + } + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public String getDbName() { + return dbName; + } + + public void setDbName(String dbName) { + this.dbName = dbName; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} Index: metastore/src/model/org/apache/hadoop/hive/metastore/model/MNotificationNextId.java =================================================================== --- metastore/src/model/org/apache/hadoop/hive/metastore/model/MNotificationNextId.java (revision 0) +++ metastore/src/model/org/apache/hadoop/hive/metastore/model/MNotificationNextId.java (working copy) @@ -0,0 +1,42 @@ +/** + * 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.metastore.model; + +public class MNotificationNextId { + + private long nextEventId; + + public MNotificationNextId() { + } + + public MNotificationNextId(long nextEventId) { + this.nextEventId = nextEventId; + } + + public long getNextEventId() { + return nextEventId; + } + + public void setNextEventId(long nextEventId) { + this.nextEventId = nextEventId; + } + + public void incrementEventId() { + nextEventId++; + } +} Index: metastore/src/model/package.jdo =================================================================== --- metastore/src/model/package.jdo (revision 1650429) +++ metastore/src/model/package.jdo (working copy) @@ -985,6 +985,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: metastore/src/test/org/apache/hadoop/hive/metastore/DummyRawStoreControlledCommit.java =================================================================== --- metastore/src/test/org/apache/hadoop/hive/metastore/DummyRawStoreControlledCommit.java (revision 1650429) +++ metastore/src/test/org/apache/hadoop/hive/metastore/DummyRawStoreControlledCommit.java (working copy) @@ -21,12 +21,14 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.SortedSet; import org.apache.hadoop.conf.Configurable; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.metastore.api.AggrStats; import org.apache.hadoop.hive.metastore.api.ColumnStatistics; import org.apache.hadoop.hive.metastore.api.ColumnStatisticsObj; +import org.apache.hadoop.hive.metastore.api.CurrentNotificationEventId; import org.apache.hadoop.hive.metastore.api.Database; import org.apache.hadoop.hive.metastore.api.Function; import org.apache.hadoop.hive.metastore.api.HiveObjectPrivilege; @@ -36,6 +38,9 @@ import org.apache.hadoop.hive.metastore.api.InvalidPartitionException; import org.apache.hadoop.hive.metastore.api.MetaException; import org.apache.hadoop.hive.metastore.api.NoSuchObjectException; +import org.apache.hadoop.hive.metastore.api.NotificationEvent; +import org.apache.hadoop.hive.metastore.api.NotificationEventRequest; +import org.apache.hadoop.hive.metastore.api.NotificationEventResponse; import org.apache.hadoop.hive.metastore.api.Partition; import org.apache.hadoop.hive.metastore.api.PartitionEventType; import org.apache.hadoop.hive.metastore.api.PartitionsStatsRequest; @@ -349,7 +354,7 @@ public boolean grantRole(Role role, String userName, PrincipalType principalType, String grantor, PrincipalType grantorType, boolean grantOption) throws MetaException, NoSuchObjectException, InvalidObjectException { - return objectStore.grantRole(role, userName, principalType, grantor, grantorType, + return objectStore.grantRole(role, userName, principalType, grantor, grantorType, grantOption); } @@ -403,13 +408,13 @@ @Override public List listPrincipalDBGrants(String principalName, PrincipalType principalType, String dbName) { - return objectStore.listPrincipalDBGrants(principalName, principalType, dbName); + return objectStore.listPrincipalDBGrants(principalName, principalType, dbName); } @Override public List listAllTableGrants(String principalName, PrincipalType principalType, String dbName, String tableName) { - return objectStore.listAllTableGrants(principalName, principalType, + return objectStore.listAllTableGrants(principalName, principalType, dbName, tableName); } @@ -726,4 +731,25 @@ return null; } + @Override + public NotificationEventResponse getNextNotification(NotificationEventRequest rqst) { + return objectStore.getNextNotification(rqst); + } + + @Override + public void addNotificationEvent(NotificationEvent event) { + objectStore.addNotificationEvent(event); + } + + @Override + public void cleanNotificationEvents(int olderThan) { + objectStore.cleanNotificationEvents(olderThan); + } + + @Override + public CurrentNotificationEventId getCurrentNotificationEventId() { + return objectStore.getCurrentNotificationEventId(); + } + + } Index: metastore/src/test/org/apache/hadoop/hive/metastore/DummyRawStoreForJdoConnection.java =================================================================== --- metastore/src/test/org/apache/hadoop/hive/metastore/DummyRawStoreForJdoConnection.java (revision 1650429) +++ metastore/src/test/org/apache/hadoop/hive/metastore/DummyRawStoreForJdoConnection.java (working copy) @@ -20,6 +20,7 @@ import java.util.List; import java.util.Map; +import java.util.SortedSet; import junit.framework.Assert; @@ -28,6 +29,7 @@ import org.apache.hadoop.hive.metastore.api.AggrStats; import org.apache.hadoop.hive.metastore.api.ColumnStatistics; import org.apache.hadoop.hive.metastore.api.ColumnStatisticsObj; +import org.apache.hadoop.hive.metastore.api.CurrentNotificationEventId; import org.apache.hadoop.hive.metastore.api.Database; import org.apache.hadoop.hive.metastore.api.Function; import org.apache.hadoop.hive.metastore.api.HiveObjectPrivilege; @@ -37,6 +39,9 @@ import org.apache.hadoop.hive.metastore.api.InvalidPartitionException; import org.apache.hadoop.hive.metastore.api.MetaException; import org.apache.hadoop.hive.metastore.api.NoSuchObjectException; +import org.apache.hadoop.hive.metastore.api.NotificationEvent; +import org.apache.hadoop.hive.metastore.api.NotificationEventRequest; +import org.apache.hadoop.hive.metastore.api.NotificationEventResponse; import org.apache.hadoop.hive.metastore.api.Partition; import org.apache.hadoop.hive.metastore.api.PartitionEventType; import org.apache.hadoop.hive.metastore.api.PartitionsStatsRequest; @@ -742,7 +747,28 @@ throws MetaException { return null; } - + + @Override + public NotificationEventResponse getNextNotification(NotificationEventRequest rqst) { + return null; + } + + @Override + public void addNotificationEvent(NotificationEvent event) { + + } + + @Override + public void cleanNotificationEvents(int olderThan) { + + } + + @Override + public CurrentNotificationEventId getCurrentNotificationEventId() { + return null; + } + + } Index: ql/src/java/org/apache/hadoop/hive/ql/exec/ExprNodeEvaluatorFactory.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/ExprNodeEvaluatorFactory.java (revision 1650429) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/ExprNodeEvaluatorFactory.java (working copy) @@ -100,12 +100,14 @@ private static class EvaluatorContext { - private final Map cached = new HashMap(); + private final Map cached = + new HashMap(); private boolean hasReference; public ExprNodeEvaluator getEvaluated(ExprNodeEvaluator eval) { - String key = eval.getExpr().toString(); + ExprNodeDesc.ExprNodeDescEqualityWrapper key = + new ExprNodeDesc.ExprNodeDescEqualityWrapper(eval.expr); ExprNodeEvaluator prev = cached.get(key); if (prev == null) { cached.put(key, eval); Index: ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java (revision 1650429) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/MapOperator.java (working copy) @@ -583,15 +583,15 @@ } } else if(vc.equals(VirtualColumn.ROWID)) { - if(ctx.getIoCxt().ri == null) { + if(ctx.getIoCxt().getRecordIdentifier() == null) { vcValues[i] = null; } else { if(vcValues[i] == null) { vcValues[i] = new Object[RecordIdentifier.Field.values().length]; } - RecordIdentifier.StructInfo.toArray(ctx.getIoCxt().ri, (Object[])vcValues[i]); - ctx.getIoCxt().ri = null;//so we don't accidentally cache the value; shouldn't + RecordIdentifier.StructInfo.toArray(ctx.getIoCxt().getRecordIdentifier(), (Object[])vcValues[i]); + ctx.getIoCxt().setRecordIdentifier(null);//so we don't accidentally cache the value; shouldn't //happen since IO layer either knows how to produce ROW__ID or not - but to be safe } } Index: ql/src/java/org/apache/hadoop/hive/ql/exec/MoveTask.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/MoveTask.java (revision 1650429) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/MoveTask.java (working copy) @@ -145,7 +145,7 @@ private Path createTargetPath(Path targetPath, FileSystem fs) throws IOException { Path deletePath = null; Path mkDirPath = targetPath.getParent(); - if (mkDirPath != null & !fs.exists(mkDirPath)) { + if (mkDirPath != null && !fs.exists(mkDirPath)) { Path actualPath = mkDirPath; // targetPath path is /x/y/z/1/2/3 here /x/y/z is present in the file system // create the structure till /x/y/z/1/2 to work rename for multilevel directory Index: ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnAssignFactory.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnAssignFactory.java (revision 1650429) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnAssignFactory.java (working copy) @@ -30,7 +30,9 @@ import org.apache.hadoop.hive.serde2.io.ByteWritable; import org.apache.hadoop.hive.serde2.io.DateWritable; import org.apache.hadoop.hive.serde2.io.DoubleWritable; +import org.apache.hadoop.hive.serde2.io.HiveCharWritable; import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable; +import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable; import org.apache.hadoop.hive.serde2.io.ShortWritable; import org.apache.hadoop.hive.serde2.io.TimestampWritable; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; @@ -414,7 +416,13 @@ if (val == null) { assignNull(destIndex); } else { - HiveVarchar hiveVarchar = (HiveVarchar) val; + // We store VARCHAR type stripped of pads. + HiveVarchar hiveVarchar; + if (val instanceof HiveVarchar) { + hiveVarchar = (HiveVarchar) val; + } else { + hiveVarchar = ((HiveVarcharWritable) val).getHiveVarchar(); + } byte[] bytes = hiveVarchar.getValue().getBytes(); assignBytes(bytes, 0, bytes.length, destIndex); } @@ -429,7 +437,12 @@ assignNull(destIndex); } else { // We store CHAR type stripped of pads. - HiveChar hiveChar = (HiveChar) val; + HiveChar hiveChar; + if (val instanceof HiveChar) { + hiveChar = (HiveChar) val; + } else { + hiveChar = ((HiveCharWritable) val).getHiveChar(); + } byte[] bytes = hiveChar.getStrippedValue().getBytes(); assignBytes(bytes, 0, bytes.length, destIndex); } Index: ql/src/java/org/apache/hadoop/hive/ql/io/HiveContextAwareRecordReader.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/io/HiveContextAwareRecordReader.java (revision 1650429) +++ ql/src/java/org/apache/hadoop/hive/ql/io/HiveContextAwareRecordReader.java (working copy) @@ -66,6 +66,7 @@ private boolean wasUsingSortedSearch = false; private String genericUDFClassName = null; private final List stopComparisons = new ArrayList(); + private Map pathToPartitionInfo; protected RecordReader recordReader; protected JobConf jobConf; @@ -116,11 +117,11 @@ if(retVal) { if(key instanceof RecordIdentifier) { //supports AcidInputFormat which uses the KEY pass ROW__ID info - ioCxtRef.ri = (RecordIdentifier)key; + ioCxtRef.setRecordIdentifier((RecordIdentifier)key); } else if(recordReader instanceof AcidInputFormat.AcidRecordReader) { //supports AcidInputFormat which do not use the KEY pass ROW__ID info - ioCxtRef.ri = ((AcidInputFormat.AcidRecordReader) recordReader).getRecordIdentifier(); + ioCxtRef.setRecordIdentifier(((AcidInputFormat.AcidRecordReader) recordReader).getRecordIdentifier()); } } return retVal; @@ -133,30 +134,30 @@ protected void updateIOContext() throws IOException { long pointerPos = this.getPos(); - if (!ioCxtRef.isBlockPointer) { - ioCxtRef.currentBlockStart = pointerPos; - ioCxtRef.currentRow = 0; + if (!ioCxtRef.isBlockPointer()) { + ioCxtRef.setCurrentBlockStart(pointerPos); + ioCxtRef.setCurrentRow(0); return; } - ioCxtRef.currentRow++; + ioCxtRef.setCurrentRow(ioCxtRef.getCurrentRow() + 1); - if (ioCxtRef.nextBlockStart == -1) { - ioCxtRef.nextBlockStart = pointerPos; - ioCxtRef.currentRow = 0; + if (ioCxtRef.getNextBlockStart() == -1) { + ioCxtRef.setNextBlockStart(pointerPos); + ioCxtRef.setCurrentRow(0); } - if (pointerPos != ioCxtRef.nextBlockStart) { + if (pointerPos != ioCxtRef.getNextBlockStart()) { // the reader pointer has moved to the end of next block, or the end of // current record. - ioCxtRef.currentRow = 0; + ioCxtRef.setCurrentRow(0); - if (ioCxtRef.currentBlockStart == ioCxtRef.nextBlockStart) { - ioCxtRef.currentRow = 1; + if (ioCxtRef.getCurrentBlockStart() == ioCxtRef.getNextBlockStart()) { + ioCxtRef.setCurrentRow(1); } - ioCxtRef.currentBlockStart = ioCxtRef.nextBlockStart; - ioCxtRef.nextBlockStart = pointerPos; + ioCxtRef.setCurrentBlockStart(ioCxtRef.getNextBlockStart()); + ioCxtRef.setNextBlockStart(pointerPos); } } @@ -167,9 +168,9 @@ private void initIOContext(long startPos, boolean isBlockPointer, Path inputPath) { ioCxtRef = this.getIOContext(); - ioCxtRef.currentBlockStart = startPos; - ioCxtRef.isBlockPointer = isBlockPointer; - ioCxtRef.inputPath = inputPath; + ioCxtRef.setCurrentBlockStart(startPos); + ioCxtRef.setBlockPointer(isBlockPointer); + ioCxtRef.setInputPath(inputPath); LOG.info("Processing file " + inputPath); initDone = true; } @@ -222,7 +223,7 @@ // Binary search only works if we know the size of the split, and the recordReader is an // RCFileRecordReader this.getIOContext().setUseSorted(true); - this.getIOContext().setIsBinarySearching(true); + this.getIOContext().setBinarySearching(true); this.wasUsingSortedSearch = true; } else { // Use the defalut methods for next in the child class @@ -284,7 +285,7 @@ // binary search, if the new position at least as big as the size of the split, any // matching rows must be in the final block, so we can end the binary search. if (newPosition == previousPosition || newPosition >= splitEnd) { - this.getIOContext().setIsBinarySearching(false); + this.getIOContext().setBinarySearching(false); sync(rangeStart); } @@ -310,8 +311,10 @@ Path filePath = this.ioCxtRef.getInputPath(); PartitionDesc part = null; try { - Map pathToPartitionInfo = Utilities + if (pathToPartitionInfo == null) { + pathToPartitionInfo = Utilities .getMapWork(jobConf).getPathToPartitionInfo(); + } part = HiveFileFormatUtils .getPartitionDescFromPathRecursively(pathToPartitionInfo, filePath, IOPrepareCache.get().getPartitionDescMap()); @@ -402,7 +405,7 @@ */ private void beginLinearSearch() throws IOException { sync(rangeStart); - this.getIOContext().setIsBinarySearching(false); + this.getIOContext().setBinarySearching(false); this.wasUsingSortedSearch = false; } Index: ql/src/java/org/apache/hadoop/hive/ql/io/IOContext.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/io/IOContext.java (revision 1650429) +++ ql/src/java/org/apache/hadoop/hive/ql/io/IOContext.java (working copy) @@ -36,23 +36,30 @@ */ public class IOContext { - private static ThreadLocal threadLocal = new ThreadLocal(){ + /** + * Spark uses this thread local + */ + private static final ThreadLocal threadLocal = new ThreadLocal(){ @Override protected synchronized IOContext initialValue() { return new IOContext(); } }; - private static Map inputNameIOContextMap = new HashMap(); - private static IOContext get() { return IOContext.threadLocal.get(); } + /** + * Tez and MR use this map but are single threaded per JVM thus no synchronization is required. + */ + private static final Map inputNameIOContextMap = new HashMap(); + + public static IOContext get(Configuration conf) { if (HiveConf.getVar(conf, HiveConf.ConfVars.HIVE_EXECUTION_ENGINE).equals("spark")) { return get(); } String inputName = conf.get(Utilities.INPUT_NAME); - if (inputNameIOContextMap.containsKey(inputName) == false) { + if (!inputNameIOContextMap.containsKey(inputName)) { IOContext ioContext = new IOContext(); inputNameIOContextMap.put(inputName, ioContext); } @@ -65,26 +72,26 @@ inputNameIOContextMap.clear(); } - long currentBlockStart; - long nextBlockStart; - long currentRow; - boolean isBlockPointer; - boolean ioExceptions; + private long currentBlockStart; + private long nextBlockStart; + private long currentRow; + private boolean isBlockPointer; + private boolean ioExceptions; // Are we using the fact the input is sorted - boolean useSorted = false; + private boolean useSorted = false; // Are we currently performing a binary search - boolean isBinarySearching = false; + private boolean isBinarySearching = false; // Do we want to end the binary search - boolean endBinarySearch = false; + private boolean endBinarySearch = false; // The result of the comparison of the last row processed - Comparison comparison = null; + private Comparison comparison = null; // The class name of the generic UDF being used by the filter - String genericUDFClassName = null; + private String genericUDFClassName = null; /** * supports {@link org.apache.hadoop.hive.ql.metadata.VirtualColumn#ROWID} */ - public RecordIdentifier ri; + private RecordIdentifier ri; public static enum Comparison { GREATER, @@ -93,7 +100,7 @@ UNKNOWN } - Path inputPath; + private Path inputPath; public IOContext() { this.currentBlockStart = 0; @@ -163,7 +170,7 @@ return isBinarySearching; } - public void setIsBinarySearching(boolean isBinarySearching) { + public void setBinarySearching(boolean isBinarySearching) { this.isBinarySearching = isBinarySearching; } @@ -204,6 +211,14 @@ this.genericUDFClassName = genericUDFClassName; } + public RecordIdentifier getRecordIdentifier() { + return this.ri; + } + + public void setRecordIdentifier(RecordIdentifier ri) { + this.ri = ri; + } + /** * The thread local IOContext is static, we may need to restart the search if, for instance, * multiple files are being searched as part of a CombinedHiveRecordReader Index: ql/src/java/org/apache/hadoop/hive/ql/io/avro/AvroContainerOutputFormat.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/io/avro/AvroContainerOutputFormat.java (revision 1650429) +++ ql/src/java/org/apache/hadoop/hive/ql/io/avro/AvroContainerOutputFormat.java (working copy) @@ -60,7 +60,7 @@ Properties properties, Progressable progressable) throws IOException { Schema schema; try { - schema = AvroSerdeUtils.determineSchemaOrThrowException(properties); + schema = AvroSerdeUtils.determineSchemaOrThrowException(jobConf, properties); } catch (AvroSerdeException e) { throw new IOException(e); } Index: ql/src/java/org/apache/hadoop/hive/ql/io/avro/AvroGenericRecordReader.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/io/avro/AvroGenericRecordReader.java (revision 1650429) +++ ql/src/java/org/apache/hadoop/hive/ql/io/avro/AvroGenericRecordReader.java (working copy) @@ -109,7 +109,7 @@ Properties props = pathsAndParts.getValue().getProperties(); if(props.containsKey(AvroSerdeUtils.SCHEMA_LITERAL) || props.containsKey(AvroSerdeUtils.SCHEMA_URL)) { - return AvroSerdeUtils.determineSchemaOrThrowException(props); + return AvroSerdeUtils.determineSchemaOrThrowException(job, props); } else { return null; // If it's not in this property, it won't be in any others Index: ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveGroupingID.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveGroupingID.java (revision 0) +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveGroupingID.java (working copy) @@ -0,0 +1,25 @@ +package org.apache.hadoop.hive.ql.optimizer.calcite.reloperators; + +import org.apache.calcite.sql.SqlInternalOperator; +import org.apache.calcite.sql.SqlKind; +import org.apache.calcite.sql.type.InferTypes; +import org.apache.calcite.sql.type.OperandTypes; +import org.apache.calcite.sql.type.ReturnTypes; + +public class HiveGroupingID extends SqlInternalOperator { + + public static final SqlInternalOperator GROUPING__ID = + new HiveGroupingID(); + + private HiveGroupingID() { + super("$GROUPING__ID", + SqlKind.OTHER, + 0, + false, + ReturnTypes.BIGINT, + InferTypes.BOOLEAN, + OperandTypes.ONE_OR_MORE); + } + +} + Index: ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/ASTConverter.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/ASTConverter.java (revision 1650429) +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/ASTConverter.java (working copy) @@ -27,6 +27,7 @@ import org.apache.calcite.rel.RelNode; import org.apache.calcite.rel.RelVisitor; import org.apache.calcite.rel.core.Aggregate; +import org.apache.calcite.rel.core.Aggregate.Group; import org.apache.calcite.rel.core.AggregateCall; import org.apache.calcite.rel.core.Filter; import org.apache.calcite.rel.core.Join; @@ -49,12 +50,14 @@ import org.apache.calcite.sql.SqlKind; import org.apache.calcite.sql.SqlOperator; import org.apache.calcite.sql.type.SqlTypeName; -import org.apache.calcite.util.BitSets; +import org.apache.calcite.util.ImmutableBitSet; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hive.metastore.api.FieldSchema; +import org.apache.hadoop.hive.ql.metadata.VirtualColumn; import org.apache.hadoop.hive.ql.optimizer.calcite.CalciteSemanticException; import org.apache.hadoop.hive.ql.optimizer.calcite.RelOptHiveTable; +import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveGroupingID; import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveSort; import org.apache.hadoop.hive.ql.optimizer.calcite.translator.SqlFunctionConverter.HiveToken; import org.apache.hadoop.hive.ql.parse.ASTNode; @@ -93,7 +96,7 @@ return c.convert(); } - private ASTNode convert() { + private ASTNode convert() throws CalciteSemanticException { /* * 1. Walk RelNode Graph; note from, where, gBy.. nodes. */ @@ -118,15 +121,50 @@ * 4. GBy */ if (groupBy != null) { - ASTBuilder b = ASTBuilder.construct(HiveParser.TOK_GROUPBY, "TOK_GROUPBY"); - for (int i : BitSets.toIter(groupBy.getGroupSet())) { + ASTBuilder b; + boolean groupingSetsExpression = false; + if (groupBy.indicator) { + Group aggregateType = Aggregate.Group.induce(groupBy.getGroupSet(), + groupBy.getGroupSets()); + if (aggregateType == Group.ROLLUP) { + b = ASTBuilder.construct(HiveParser.TOK_ROLLUP_GROUPBY, "TOK_ROLLUP_GROUPBY"); + } + else if (aggregateType == Group.CUBE) { + b = ASTBuilder.construct(HiveParser.TOK_CUBE_GROUPBY, "TOK_CUBE_GROUPBY"); + } + else { + b = ASTBuilder.construct(HiveParser.TOK_GROUPING_SETS, "TOK_GROUPING_SETS"); + groupingSetsExpression = true; + } + } + else { + b = ASTBuilder.construct(HiveParser.TOK_GROUPBY, "TOK_GROUPBY"); + } + + for (int i : groupBy.getGroupSet()) { RexInputRef iRef = new RexInputRef(i, groupBy.getCluster().getTypeFactory() .createSqlType(SqlTypeName.ANY)); b.add(iRef.accept(new RexVisitor(schema))); } - if (!groupBy.getGroupSet().isEmpty()) + //Grouping sets expressions + if(groupingSetsExpression) { + for(ImmutableBitSet groupSet: groupBy.getGroupSets()) { + ASTBuilder expression = ASTBuilder.construct( + HiveParser.TOK_GROUPING_SETS_EXPRESSION, "TOK_GROUPING_SETS_EXPRESSION"); + for (int i : groupSet) { + RexInputRef iRef = new RexInputRef(i, groupBy.getCluster().getTypeFactory() + .createSqlType(SqlTypeName.ANY)); + expression.add(iRef.accept(new RexVisitor(schema))); + } + b.add(expression); + } + } + + if (!groupBy.getGroupSet().isEmpty()) { hiveAST.groupBy = b.node(); + } + schema = new Schema(schema, groupBy); } @@ -151,9 +189,33 @@ int i = 0; for (RexNode r : select.getChildExps()) { - ASTNode selectExpr = ASTBuilder.selectExpr(r.accept( - new RexVisitor(schema, r instanceof RexLiteral)), - select.getRowType().getFieldNames().get(i++)); + // If it is a GroupBy with grouping sets and grouping__id column + // is selected, we reformulate to project that column from + // the output of the GroupBy operator + boolean reformulate = false; + if (groupBy != null && groupBy.indicator) { + RexNode expr = select.getChildExps().get(i); + if (expr instanceof RexCall) { + if ( ((RexCall) expr).getOperator(). + equals(HiveGroupingID.GROUPING__ID)) { + reformulate = true; + } + } + } + ASTNode expr; + if(reformulate) { + RexInputRef iRef = new RexInputRef( + groupBy.getGroupCount() * 2 + groupBy.getAggCallList().size(), + TypeConverter.convert( + VirtualColumn.GROUPINGID.getTypeInfo(), + groupBy.getCluster().getTypeFactory())); + expr = iRef.accept(new RexVisitor(schema)); + } + else { + expr = r.accept(new RexVisitor(schema, r instanceof RexLiteral)); + } + String alias = select.getRowType().getFieldNames().get(i++); + ASTNode selectExpr = ASTBuilder.selectExpr(expr, alias); b.add(selectExpr); } } @@ -232,7 +294,7 @@ return new Schema(select, tblAlias); } - private QueryBlockInfo convertSource(RelNode r) { + private QueryBlockInfo convertSource(RelNode r) throws CalciteSemanticException { Schema s; ASTNode ast; @@ -554,10 +616,19 @@ } Schema(Schema src, Aggregate gBy) { - for (int i : BitSets.toIter(gBy.getGroupSet())) { + for (int i : gBy.getGroupSet()) { ColumnInfo cI = src.get(i); add(cI); } + // If we are using grouping sets, we add the + // fields again, these correspond to the boolean + // grouping in Calcite. They are not used by Hive. + if(gBy.indicator) { + for (int i : gBy.getGroupSet()) { + ColumnInfo cI = src.get(i); + add(cI); + } + } List aggs = gBy.getAggCallList(); for (AggregateCall agg : aggs) { int argCount = agg.getArgList().size(); @@ -572,6 +643,9 @@ } add(new ColumnInfo(null, b.node())); } + if(gBy.indicator) { + add(new ColumnInfo(null,VirtualColumn.GROUPINGID.getName())); + } } /** @@ -665,4 +739,5 @@ return flat; } + } Index: ql/src/java/org/apache/hadoop/hive/ql/optimizer/unionproc/UnionProcFactory.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/unionproc/UnionProcFactory.java (revision 1650429) +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/unionproc/UnionProcFactory.java (working copy) @@ -265,13 +265,20 @@ Operator operator = (Operator)stack.get(pos); + // (1) Because we have operator.supportUnionRemoveOptimization() for + // true only in SEL and FIL operators, + // this rule will actually only match UNION%(SEL%|FIL%)*FS% + // (2) The assumption here is that, if + // operator.getChildOperators().size() > 1, we are going to have + // multiple FS operators, i.e., multiple inserts. + // Current implementation does not support this. More details, please + // see HIVE-9217. + if (operator.getChildOperators() != null && operator.getChildOperators().size() > 1) { + return null; + } // Break if it encountered a union if (operator instanceof UnionOperator) { union = (UnionOperator)operator; - // No need for this optimization in case of multi-table inserts - if (union.getChildOperators().size() > 1) { - return null; - } break; } Index: ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java (revision 1650429) +++ ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java (working copy) @@ -22,6 +22,8 @@ import java.lang.reflect.UndeclaredThrowableException; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -66,6 +68,8 @@ import org.apache.calcite.rel.rules.JoinPushTransitivePredicatesRule; import org.apache.calcite.rel.rules.JoinToMultiJoinRule; import org.apache.calcite.rel.rules.LoptOptimizeJoinRule; +import org.apache.calcite.rel.rules.ProjectRemoveRule; +import org.apache.calcite.rel.rules.ReduceExpressionsRule; import org.apache.calcite.rel.rules.SemiJoinFilterTransposeRule; import org.apache.calcite.rel.rules.SemiJoinJoinTransposeRule; import org.apache.calcite.rel.rules.SemiJoinProjectTransposeRule; @@ -106,15 +110,16 @@ import org.apache.hadoop.hive.ql.lib.Node; import org.apache.hadoop.hive.ql.metadata.Table; import org.apache.hadoop.hive.ql.metadata.VirtualColumn; +import org.apache.hadoop.hive.ql.optimizer.calcite.CalciteSemanticException; +import org.apache.hadoop.hive.ql.optimizer.calcite.HiveCalciteUtil; import org.apache.hadoop.hive.ql.optimizer.calcite.HiveDefaultRelMetadataProvider; -import org.apache.hadoop.hive.ql.optimizer.calcite.HiveCalciteUtil; import org.apache.hadoop.hive.ql.optimizer.calcite.HiveTypeSystemImpl; -import org.apache.hadoop.hive.ql.optimizer.calcite.CalciteSemanticException; import org.apache.hadoop.hive.ql.optimizer.calcite.RelOptHiveTable; import org.apache.hadoop.hive.ql.optimizer.calcite.TraitsUtil; import org.apache.hadoop.hive.ql.optimizer.calcite.cost.HiveVolcanoPlanner; import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveAggregate; import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveFilter; +import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveGroupingID; import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveJoin; import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveProject; import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveRelNode; @@ -159,12 +164,12 @@ import com.google.common.base.Function; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableList.Builder; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; -import com.google.common.collect.ImmutableList.Builder; public class CalcitePlanner extends SemanticAnalyzer { - private AtomicInteger noColsMissingStats = new AtomicInteger(0); + private final AtomicInteger noColsMissingStats = new AtomicInteger(0); private List topLevelFieldSchema; private SemanticException semanticException; private boolean runCBO = true; @@ -187,6 +192,7 @@ } } + @Override @SuppressWarnings("rawtypes") Operator genOPTree(ASTNode ast, PlannerContext plannerCtx) throws SemanticException { Operator sinkOp = null; @@ -282,7 +288,7 @@ /** * Can CBO handle the given AST? - * + * * @param ast * Top level AST * @param qb @@ -290,7 +296,7 @@ * @param cboCtx * @param semAnalyzer * @return boolean - * + * * Assumption:
* If top level QB is query then everything below it must also be * Query. @@ -345,7 +351,7 @@ /** * Checks whether Calcite can handle the query. - * + * * @param queryProperties * @param conf * @param topLevelQB @@ -354,7 +360,7 @@ * Whether return value should be verbose in case of failure. * @return null if the query can be handled; non-null reason string if it * cannot be. - * + * * Assumption:
* 1. If top level QB is query then everything below it must also be * Query
@@ -548,7 +554,7 @@ /** * Get Optimized AST for the given QB tree in the semAnalyzer. - * + * * @return Optimized operator tree translated in to Hive AST * @throws SemanticException */ @@ -572,7 +578,7 @@ /*** * Unwraps Calcite Invocation exceptions coming meta data provider chain and * obtains the real cause. - * + * * @param Exception */ private void rethrowCalciteException(Exception e) throws SemanticException { @@ -651,7 +657,7 @@ private class CalcitePlannerAction implements Frameworks.PlannerAction { private RelOptCluster cluster; private RelOptSchema relOptSchema; - private Map partitionCache; + private final Map partitionCache; // TODO: Do we need to keep track of RR, ColNameToPosMap for every op or // just last one. @@ -706,6 +712,11 @@ hepPgmBldr.addRuleInstance(new LoptOptimizeJoinRule(HiveJoin.HIVE_JOIN_FACTORY, HiveProject.DEFAULT_PROJECT_FACTORY, HiveFilter.DEFAULT_FILTER_FACTORY)); + hepPgmBldr.addRuleInstance(ReduceExpressionsRule.JOIN_INSTANCE); + hepPgmBldr.addRuleInstance(ReduceExpressionsRule.FILTER_INSTANCE); + hepPgmBldr.addRuleInstance(ReduceExpressionsRule.PROJECT_INSTANCE); + + hepPgmBldr.addRuleInstance(ProjectRemoveRule.INSTANCE); hepPgm = hepPgmBldr.build(); HepPlanner hepPlanner = new HepPlanner(hepPgm); @@ -736,7 +747,7 @@ /** * Perform all optimizations before Join Ordering. - * + * * @param basePlan * original plan * @param mdProvider @@ -754,7 +765,11 @@ SemiJoinFilterTransposeRule.INSTANCE, SemiJoinProjectTransposeRule.INSTANCE); // 2. PPD - basePlan = hepPlan(basePlan, true, mdProvider, new HiveFilterProjectTransposeRule( + basePlan = hepPlan(basePlan, true, mdProvider, + ReduceExpressionsRule.PROJECT_INSTANCE, + ReduceExpressionsRule.FILTER_INSTANCE, + ReduceExpressionsRule.JOIN_INSTANCE, + new HiveFilterProjectTransposeRule( Filter.class, HiveFilter.DEFAULT_FILTER_FACTORY, HiveProject.class, HiveProject.DEFAULT_PROJECT_FACTORY), new HiveFilterSetOpTransposeRule( HiveFilter.DEFAULT_FILTER_FACTORY), @@ -787,7 +802,7 @@ /** * Run the HEP Planner with the given rule set. - * + * * @param basePlan * @param followPlanChanges * @param mdProvider @@ -1057,7 +1072,7 @@ /** * Generate Join Logical Plan Relnode by walking through the join AST. - * + * * @param qb * @param aliasToRel * Alias(Table/Relation alias) to RelNode; only read and not @@ -1276,7 +1291,7 @@ Map aliasToRel, boolean forHavingClause) throws SemanticException { /* * Handle Subquery predicates. - * + * * Notes (8/22/14 hb): Why is this a copy of the code from {@link * #genFilterPlan} - for now we will support the same behavior as non CBO * route. - but plan to allow nested SubQueries(Restriction.9.m) and @@ -1509,7 +1524,7 @@ } private RelNode genGBRelNode(List gbExprs, List aggInfoLst, - RelNode srcRel) throws SemanticException { + List groupSets, RelNode srcRel) throws SemanticException { ImmutableMap posMap = this.relToHiveColNameCalcitePosMap.get(srcRel); RexNodeConverter converter = new RexNodeConverter(this.cluster, srcRel.getRowType(), posMap, 0, false); @@ -1541,10 +1556,25 @@ } RelNode gbInputRel = HiveProject.create(srcRel, gbChildProjLst, null); + // Grouping sets: we need to transform them into ImmutableBitSet + // objects for Calcite + List transformedGroupSets = null; + if(groupSets != null && !groupSets.isEmpty()) { + Set setTransformedGroupSets = + new HashSet(groupSets.size()); + for(int val: groupSets) { + setTransformedGroupSets.add(convert(val)); + } + // Calcite expects the grouping sets sorted and without duplicates + transformedGroupSets = new ArrayList(setTransformedGroupSets); + Collections.sort(transformedGroupSets, ImmutableBitSet.COMPARATOR); + } + HiveRelNode aggregateRel = null; try { aggregateRel = new HiveAggregate(cluster, cluster.traitSetOf(HiveRelNode.CONVENTION), - gbInputRel, false, groupSet, null, aggregateCalls); + gbInputRel, (transformedGroupSets!=null ? true:false), groupSet, + transformedGroupSets, aggregateCalls); } catch (InvalidRelException e) { throw new SemanticException(e); } @@ -1552,6 +1582,19 @@ return aggregateRel; } + private ImmutableBitSet convert(int value) { + BitSet bits = new BitSet(); + int index = 0; + while (value != 0L) { + if (value % 2 != 0) { + bits.set(index); + } + ++index; + value = value >>> 1; + } + return ImmutableBitSet.FROM_BIT_SET.apply(bits); + } + private void addAlternateGByKeyMappings(ASTNode gByExpr, ColumnInfo colInfo, RowResolver gByInputRR, RowResolver gByRR) { if (gByExpr.getType() == HiveParser.DOT @@ -1676,7 +1719,7 @@ /** * Generate GB plan. - * + * * @param qb * @param srcRel * @return TODO: 1. Grouping Sets (roll up..) @@ -1686,26 +1729,6 @@ RelNode gbRel = null; QBParseInfo qbp = getQBParseInfo(qb); - // 0. for GSets, Cube, Rollup, bail from Calcite path. - if (!qbp.getDestRollups().isEmpty() || !qbp.getDestGroupingSets().isEmpty() - || !qbp.getDestCubes().isEmpty()) { - String gbyClause = null; - HashMap gbysMap = qbp.getDestToGroupBy(); - if (gbysMap.size() == 1) { - ASTNode gbyAST = gbysMap.entrySet().iterator().next().getValue(); - gbyClause = ctx.getTokenRewriteStream().toString(gbyAST.getTokenStartIndex(), - gbyAST.getTokenStopIndex()); - gbyClause = "in '" + gbyClause + "'."; - } else { - gbyClause = "."; - } - String msg = String.format("Encountered Grouping Set/Cube/Rollup%s" - + " Currently we don't support Grouping Set/Cube/Rollup" + " clauses in CBO," - + " turn off cbo for these queries.", gbyClause); - LOG.debug(msg); - throw new CalciteSemanticException(msg); - } - // 1. Gather GB Expressions (AST) (GB + Aggregations) // NOTE: Multi Insert is not supported String detsClauseName = qbp.getClauseNames().iterator().next(); @@ -1739,18 +1762,34 @@ } } - // 4. Construct aggregation function Info + // 4. GroupingSets, Cube, Rollup + int groupingColsSize = gbExprNDescLst.size(); + List groupingSets = null; + if (!qbp.getDestRollups().isEmpty() + || !qbp.getDestGroupingSets().isEmpty() + || !qbp.getDestCubes().isEmpty()) { + if (qbp.getDestRollups().contains(detsClauseName)) { + groupingSets = getGroupingSetsForRollup(grpByAstExprs.size()); + } else if (qbp.getDestCubes().contains(detsClauseName)) { + groupingSets = getGroupingSetsForCube(grpByAstExprs.size()); + } else if (qbp.getDestGroupingSets().contains(detsClauseName)) { + groupingSets = getGroupingSets(grpByAstExprs, qbp, detsClauseName); + } + groupingColsSize = groupingColsSize * 2; + } + + // 5. Construct aggregation function Info ArrayList aggregations = new ArrayList(); if (hasAggregationTrees) { assert (aggregationTrees != null); for (ASTNode value : aggregationTrees.values()) { - // 4.1 Determine type of UDAF + // 5.1 Determine type of UDAF // This is the GenericUDAF name String aggName = SemanticAnalyzer.unescapeIdentifier(value.getChild(0).getText()); boolean isDistinct = value.getType() == HiveParser.TOK_FUNCTIONDI; boolean isAllColumns = value.getType() == HiveParser.TOK_FUNCTIONSTAR; - // 4.2 Convert UDAF Params to ExprNodeDesc + // 5.2 Convert UDAF Params to ExprNodeDesc ArrayList aggParameters = new ArrayList(); for (int i = 1; i < value.getChildCount(); i++) { ASTNode paraExpr = (ASTNode) value.getChild(i); @@ -1767,18 +1806,62 @@ aggParameters); AggInfo aInfo = new AggInfo(aggParameters, udaf.returnType, aggName, isDistinct); aggregations.add(aInfo); - String field = SemanticAnalyzer.getColumnInternalName(gbExprNDescLst.size() - + aggregations.size() - 1); + String field = getColumnInternalName(groupingColsSize + aggregations.size() - 1); outputColumnNames.add(field); groupByOutputRowResolver.putExpression(value, new ColumnInfo(field, aInfo.m_returnType, "", false)); } } - gbRel = genGBRelNode(gbExprNDescLst, aggregations, srcRel); + gbRel = genGBRelNode(gbExprNDescLst, aggregations, groupingSets, srcRel); relToHiveColNameCalcitePosMap.put(gbRel, buildHiveToCalciteColumnMap(groupByOutputRowResolver, gbRel)); this.relToHiveRR.put(gbRel, groupByOutputRowResolver); + + // 6. If GroupingSets, Cube, Rollup were used, we account grouping__id. + // Further, we insert a project operator on top to remove the grouping + // boolean associated to each column in Calcite; this will avoid + // recalculating all column positions when we go back from Calcite to Hive + if(groupingSets != null && !groupingSets.isEmpty()) { + RowResolver selectOutputRowResolver = new RowResolver(); + selectOutputRowResolver.setIsExprResolver(true); + RowResolver.add(selectOutputRowResolver, groupByOutputRowResolver); + outputColumnNames = new ArrayList(outputColumnNames); + + // 6.1 List of columns to keep from groupBy operator + List gbOutput = gbRel.getRowType().getFieldList(); + List calciteColLst = new ArrayList(); + for(RelDataTypeField gbOut: gbOutput) { + if(gbOut.getIndex() < gbExprNDescLst.size() || + gbOut.getIndex() >= gbExprNDescLst.size() * 2) { + calciteColLst.add(new RexInputRef(gbOut.getIndex(), gbOut.getType())); + } + } + + // 6.2 Add column for grouping_id function + String field = getColumnInternalName(groupingColsSize + aggregations.size()); + outputColumnNames.add(field); + selectOutputRowResolver.put(null, VirtualColumn.GROUPINGID.getName(), + new ColumnInfo( + field, + TypeInfoFactory.stringTypeInfo, + null, + true)); + + // 6.3 Compute column for grouping_id function in Calcite + List identifierCols = new ArrayList(); + for(int i = gbExprNDescLst.size(); i < gbExprNDescLst.size() * 2; i++) { + identifierCols.add(new RexInputRef( + i, gbOutput.get(i).getType())); + } + final RexBuilder rexBuilder = cluster.getRexBuilder(); + RexNode groupingID = rexBuilder.makeCall(HiveGroupingID.GROUPING__ID, + identifierCols); + calciteColLst.add(groupingID); + + // Create select + gbRel = this.genSelectRelNode(calciteColLst, selectOutputRowResolver, gbRel); + } } return gbRel; @@ -1788,7 +1871,7 @@ * Generate OB RelNode and input Select RelNode that should be used to * introduce top constraining Project. If Input select RelNode is not * present then don't introduce top constraining select. - * + * * @param qb * @param srcRel * @param outermostOB @@ -2198,7 +2281,7 @@ /** * NOTE: there can only be one select caluse since we don't handle multi * destination insert. - * + * * @throws SemanticException */ private RelNode genSelectLogicalPlan(QB qb, RelNode srcRel, RelNode starSrcRel) Index: ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java (revision 1650429) +++ ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java (working copy) @@ -3117,7 +3117,7 @@ } } - private List getGroupingSetsForRollup(int size) { + protected List getGroupingSetsForRollup(int size) { List groupingSetKeys = new ArrayList(); for (int i = 0; i <= size; i++) { groupingSetKeys.add((1 << i) - 1); @@ -3125,7 +3125,7 @@ return groupingSetKeys; } - private List getGroupingSetsForCube(int size) { + protected List getGroupingSetsForCube(int size) { int count = 1 << size; List results = new ArrayList(count); for (int i = 0; i < count; ++i) { @@ -3152,7 +3152,7 @@ return new ObjectPair, List>(groupByExprs, groupingSets); } - private List getGroupingSets(List groupByExpr, QBParseInfo parseInfo, + protected List getGroupingSets(List groupByExpr, QBParseInfo parseInfo, String dest) throws SemanticException { Map exprPos = new HashMap(); for (int i = 0; i < groupByExpr.size(); ++i) { Index: ql/src/test/org/apache/hadoop/hive/ql/io/TestHiveBinarySearchRecordReader.java =================================================================== --- ql/src/test/org/apache/hadoop/hive/ql/io/TestHiveBinarySearchRecordReader.java (revision 1650429) +++ ql/src/test/org/apache/hadoop/hive/ql/io/TestHiveBinarySearchRecordReader.java (working copy) @@ -118,7 +118,7 @@ conf.set(Utilities.INPUT_NAME, "TestHiveBinarySearchRecordReader"); ioContext = IOContext.get(conf); ioContext.setUseSorted(false); - ioContext.setIsBinarySearching(false); + ioContext.setBinarySearching(false); ioContext.setEndBinarySearch(false); ioContext.setComparison(null); ioContext.setGenericUDFClassName(null); @@ -252,7 +252,7 @@ ioContext.setGenericUDFClassName(GenericUDFOPEqual.class.getName()); Assert.assertTrue(ioContext.isBinarySearching()); Assert.assertTrue(executeDoNext(hbsReader)); - ioContext.setIsBinarySearching(false); + ioContext.setBinarySearching(false); ioContext.setComparison(-1); Assert.assertTrue(executeDoNext(hbsReader)); ioContext.setComparison(0); @@ -292,7 +292,7 @@ ioContext.setGenericUDFClassName(GenericUDFOPGreaterThan.class.getName()); Assert.assertTrue(ioContext.isBinarySearching()); Assert.assertTrue(executeDoNext(hbsReader)); - ioContext.setIsBinarySearching(false); + ioContext.setBinarySearching(false); ioContext.setComparison(-1); Assert.assertTrue(executeDoNext(hbsReader)); ioContext.setComparison(0); @@ -306,7 +306,7 @@ ioContext.setGenericUDFClassName(GenericUDFOPEqualOrGreaterThan.class.getName()); Assert.assertTrue(ioContext.isBinarySearching()); Assert.assertTrue(executeDoNext(hbsReader)); - ioContext.setIsBinarySearching(false); + ioContext.setBinarySearching(false); ioContext.setComparison(-1); Assert.assertTrue(executeDoNext(hbsReader)); ioContext.setComparison(0); Index: ql/src/test/queries/clientpositive/expr_cached.q =================================================================== --- ql/src/test/queries/clientpositive/expr_cached.q (revision 0) +++ ql/src/test/queries/clientpositive/expr_cached.q (working copy) @@ -0,0 +1,4 @@ +set hive.fetch.task.conversion=more; + +-- should return a value +select * from src tablesample (1 rows) where length(key) <> reverse(key); \ No newline at end of file Index: ql/src/test/queries/clientpositive/groupby_cube1.q =================================================================== --- ql/src/test/queries/clientpositive/groupby_cube1.q (revision 1650429) +++ ql/src/test/queries/clientpositive/groupby_cube1.q (working copy) @@ -13,6 +13,11 @@ SELECT key, val, count(1) FROM T1 GROUP BY key, val with cube; EXPLAIN +SELECT key, val, GROUPING__ID, count(1) FROM T1 GROUP BY key, val with cube; + +SELECT key, val, GROUPING__ID, count(1) FROM T1 GROUP BY key, val with cube; + +EXPLAIN SELECT key, count(distinct val) FROM T1 GROUP BY key with cube; SELECT key, count(distinct val) FROM T1 GROUP BY key with cube; Index: ql/src/test/queries/clientpositive/groupby_grouping_sets6.q =================================================================== --- ql/src/test/queries/clientpositive/groupby_grouping_sets6.q (revision 0) +++ ql/src/test/queries/clientpositive/groupby_grouping_sets6.q (working copy) @@ -0,0 +1,28 @@ +CREATE TABLE T1(a STRING, b STRING, c STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' STORED AS TEXTFILE; + +LOAD DATA LOCAL INPATH '../../data/files/grouping_sets.txt' INTO TABLE T1; + +set hive.optimize.ppd = false; +set hive.cbo.enable = false; + +-- This filter is not pushed down +EXPLAIN +SELECT a, b FROM +(SELECT a, b from T1 group by a, b grouping sets ( (a,b),a )) res +WHERE res.a=5; + +SELECT a, b FROM +(SELECT a, b from T1 group by a, b grouping sets ( (a,b),a )) res +WHERE res.a=5; + +set hive.cbo.enable = true; + +-- This filter is pushed down through aggregate with grouping sets by Calcite +EXPLAIN +SELECT a, b FROM +(SELECT a, b from T1 group by a, b grouping sets ( (a,b),a )) res +WHERE res.a=5; + +SELECT a, b FROM +(SELECT a, b from T1 group by a, b grouping sets ( (a,b),a )) res +WHERE res.a=5; Index: ql/src/test/queries/clientpositive/union_remove_6_subq.q =================================================================== --- ql/src/test/queries/clientpositive/union_remove_6_subq.q (revision 0) +++ ql/src/test/queries/clientpositive/union_remove_6_subq.q (working copy) @@ -0,0 +1,76 @@ +set hive.stats.autogather=false; +set hive.optimize.union.remove=true; +set hive.mapred.supports.subdirectories=true; + +set hive.merge.mapfiles=false; +set hive.merge.mapredfiles=false; +set mapred.input.dir.recursive=true; + +-- This is to test the union->selectstar->filesink optimization +-- Union of 2 subqueries is performed (all of which are mapred queries) +-- followed by select star and a file sink in 2 output tables. +-- The optimiaztion does not take affect since it is a multi-table insert. +-- It does not matter, whether the output is merged or not. In this case, +-- merging is turned off + +create table inputTbl1(key string, val string) stored as textfile; +create table outputTbl1(key string, values bigint) stored as textfile; +create table outputTbl2(key string, values bigint) stored as textfile; + +load data local inpath '../../data/files/T1.txt' into table inputTbl1; + +explain +FROM ( + select * from( + SELECT key, count(1) as values from inputTbl1 group by key + UNION ALL + SELECT key, count(1) as values from inputTbl1 group by key + )subq +) a +insert overwrite table outputTbl1 select * +insert overwrite table outputTbl2 select *; + +FROM ( + select * from( + SELECT key, count(1) as values from inputTbl1 group by key + UNION ALL + SELECT key, count(1) as values from inputTbl1 group by key + )subq +) a +insert overwrite table outputTbl1 select * +insert overwrite table outputTbl2 select *; + +set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat; +select * from outputTbl1 order by key, values; +select * from outputTbl2 order by key, values; + +-- The following queries guarantee the correctness. +explain +select avg(c) from( + SELECT count(1)-200 as c from src + UNION ALL + SELECT count(1) as c from src +)subq; + +select avg(c) from( + SELECT count(1)-200 as c from src + UNION ALL + SELECT count(1) as c from src +)subq; + +explain +select key, avg(c) over w from( + SELECT key, count(1)*2 as c from src group by key + UNION ALL + SELECT key, count(1) as c from src group by key +)subq group by key, c +WINDOW w AS (PARTITION BY key ORDER BY c ROWS UNBOUNDED PRECEDING); + +select key, avg(c) over w from( + SELECT key, count(1)*2 as c from src group by key + UNION ALL + SELECT key, count(1) as c from src group by key +)subq group by key, c +WINDOW w AS (PARTITION BY key ORDER BY c ROWS UNBOUNDED PRECEDING); + + Index: ql/src/test/queries/clientpositive/vector_char_mapjoin1.q =================================================================== --- ql/src/test/queries/clientpositive/vector_char_mapjoin1.q (revision 0) +++ ql/src/test/queries/clientpositive/vector_char_mapjoin1.q (working copy) @@ -0,0 +1,54 @@ +SET hive.vectorized.execution.enabled=true; +set hive.fetch.task.conversion=none; +SET hive.auto.convert.join=true; +SET hive.auto.convert.join.noconditionaltask=true; +SET hive.auto.convert.join.noconditionaltask.size=1000000000; + +drop table if exists char_join1_vc1; +drop table if exists char_join1_vc2; +drop table if exists char_join1_str; +drop table if exists char_join1_vc1_orc; +drop table if exists char_join1_vc2_orc; +drop table if exists char_join1_str_orc; + +create table char_join1_vc1 ( + c1 int, + c2 char(10) +); + +create table char_join1_vc2 ( + c1 int, + c2 char(20) +); + +create table char_join1_str ( + c1 int, + c2 string +); + +load data local inpath '../../data/files/vc1.txt' into table char_join1_vc1; +load data local inpath '../../data/files/vc1.txt' into table char_join1_vc2; +load data local inpath '../../data/files/vc1.txt' into table char_join1_str; + +create table char_join1_vc1_orc stored as orc as select * from char_join1_vc1; +create table char_join1_vc2_orc stored as orc as select * from char_join1_vc2; +create table char_join1_str_orc stored as orc as select * from char_join1_str; + +-- Join char with same length char +explain select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1; +select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1; + +-- Join char with different length char +explain select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1; +select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1; + +-- Join char with string +explain select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1; +select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1; + +drop table char_join1_vc1; +drop table char_join1_vc2; +drop table char_join1_str; +drop table char_join1_vc1_orc; +drop table char_join1_vc2_orc; +drop table char_join1_str_orc; Index: ql/src/test/queries/clientpositive/vector_varchar_mapjoin1.q =================================================================== --- ql/src/test/queries/clientpositive/vector_varchar_mapjoin1.q (revision 0) +++ ql/src/test/queries/clientpositive/vector_varchar_mapjoin1.q (working copy) @@ -0,0 +1,54 @@ +SET hive.vectorized.execution.enabled=true; +set hive.fetch.task.conversion=none; +SET hive.auto.convert.join=true; +SET hive.auto.convert.join.noconditionaltask=true; +SET hive.auto.convert.join.noconditionaltask.size=1000000000; + +drop table if exists varchar_join1_vc1; +drop table if exists varchar_join1_vc2; +drop table if exists varchar_join1_str; +drop table if exists varchar_join1_vc1_orc; +drop table if exists varchar_join1_vc2_orc; +drop table if exists varchar_join1_str_orc; + +create table varchar_join1_vc1 ( + c1 int, + c2 varchar(10) +); + +create table varchar_join1_vc2 ( + c1 int, + c2 varchar(20) +); + +create table varchar_join1_str ( + c1 int, + c2 string +); + +load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc1; +load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc2; +load data local inpath '../../data/files/vc1.txt' into table varchar_join1_str; + +create table varchar_join1_vc1_orc stored as orc as select * from varchar_join1_vc1; +create table varchar_join1_vc2_orc stored as orc as select * from varchar_join1_vc2; +create table varchar_join1_str_orc stored as orc as select * from varchar_join1_str; + +-- Join varchar with same length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1; +select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1; + +-- Join varchar with different length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1; +select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1; + +-- Join varchar with string +explain select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1; +select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1; + +drop table varchar_join1_vc1; +drop table varchar_join1_vc2; +drop table varchar_join1_str; +drop table varchar_join1_vc1_orc; +drop table varchar_join1_vc2_orc; +drop table varchar_join1_str_orc; Index: ql/src/test/results/clientpositive/annotate_stats_groupby.q.out =================================================================== --- ql/src/test/results/clientpositive/annotate_stats_groupby.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/annotate_stats_groupby.q.out (working copy) @@ -373,10 +373,10 @@ Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: state (type: string), locid (type: int) - outputColumnNames: state, locid + outputColumnNames: _col0, _col1 Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator - keys: state (type: string), locid (type: int), '0' (type: string) + keys: _col0 (type: string), _col1 (type: int), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 32 Data size: 5600 Basic stats: COMPLETE Column stats: COMPLETE @@ -430,10 +430,10 @@ Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: state (type: string), locid (type: int) - outputColumnNames: state, locid + outputColumnNames: _col0, _col1 Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator - keys: state (type: string), locid (type: int), '0' (type: string) + keys: _col0 (type: string), _col1 (type: int), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 24 Data size: 4200 Basic stats: COMPLETE Column stats: COMPLETE @@ -487,10 +487,10 @@ Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: state (type: string), locid (type: int) - outputColumnNames: state, locid + outputColumnNames: _col0, _col1 Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator - keys: state (type: string), locid (type: int), '0' (type: string) + keys: _col0 (type: string), _col1 (type: int), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 8 Data size: 1400 Basic stats: COMPLETE Column stats: COMPLETE @@ -544,10 +544,10 @@ Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: state (type: string), locid (type: int) - outputColumnNames: state, locid + outputColumnNames: _col0, _col1 Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator - keys: state (type: string), locid (type: int), '0' (type: string) + keys: _col0 (type: string), _col1 (type: int), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 16 Data size: 2800 Basic stats: COMPLETE Column stats: COMPLETE @@ -601,10 +601,10 @@ Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: state (type: string), locid (type: int) - outputColumnNames: state, locid + outputColumnNames: _col0, _col1 Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator - keys: state (type: string), locid (type: int), '0' (type: string) + keys: _col0 (type: string), _col1 (type: int), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 24 Data size: 4200 Basic stats: COMPLETE Column stats: COMPLETE @@ -658,10 +658,10 @@ Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: state (type: string), locid (type: int) - outputColumnNames: state, locid + outputColumnNames: _col0, _col1 Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator - keys: state (type: string), locid (type: int), '0' (type: string) + keys: _col0 (type: string), _col1 (type: int), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 32 Data size: 5600 Basic stats: COMPLETE Column stats: COMPLETE @@ -776,10 +776,10 @@ Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: state (type: string), locid (type: int) - outputColumnNames: state, locid + outputColumnNames: _col0, _col1 Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator - keys: state (type: string), locid (type: int), '0' (type: string) + keys: _col0 (type: string), _col1 (type: int), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 16 Data size: 2800 Basic stats: COMPLETE Column stats: COMPLETE @@ -892,10 +892,10 @@ Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: state (type: string), locid (type: int) - outputColumnNames: state, locid + outputColumnNames: _col0, _col1 Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: NONE Group By Operator - keys: state (type: string), locid (type: int), '0' (type: string) + keys: _col0 (type: string), _col1 (type: int), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 32 Data size: 3184 Basic stats: COMPLETE Column stats: NONE @@ -949,10 +949,10 @@ Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: state (type: string), locid (type: int) - outputColumnNames: state, locid + outputColumnNames: _col0, _col1 Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: NONE Group By Operator - keys: state (type: string), locid (type: int), '0' (type: string) + keys: _col0 (type: string), _col1 (type: int), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 24 Data size: 2388 Basic stats: COMPLETE Column stats: NONE @@ -1006,10 +1006,10 @@ Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: state (type: string), locid (type: int) - outputColumnNames: state, locid + outputColumnNames: _col0, _col1 Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: NONE Group By Operator - keys: state (type: string), locid (type: int), '0' (type: string) + keys: _col0 (type: string), _col1 (type: int), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: NONE @@ -1063,10 +1063,10 @@ Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: state (type: string), locid (type: int) - outputColumnNames: state, locid + outputColumnNames: _col0, _col1 Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: NONE Group By Operator - keys: state (type: string), locid (type: int), '0' (type: string) + keys: _col0 (type: string), _col1 (type: int), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 16 Data size: 1592 Basic stats: COMPLETE Column stats: NONE @@ -1120,10 +1120,10 @@ Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: state (type: string), locid (type: int) - outputColumnNames: state, locid + outputColumnNames: _col0, _col1 Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: NONE Group By Operator - keys: state (type: string), locid (type: int), '0' (type: string) + keys: _col0 (type: string), _col1 (type: int), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 24 Data size: 2388 Basic stats: COMPLETE Column stats: NONE @@ -1177,10 +1177,10 @@ Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: state (type: string), locid (type: int) - outputColumnNames: state, locid + outputColumnNames: _col0, _col1 Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: NONE Group By Operator - keys: state (type: string), locid (type: int), '0' (type: string) + keys: _col0 (type: string), _col1 (type: int), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 32 Data size: 3184 Basic stats: COMPLETE Column stats: NONE @@ -1291,10 +1291,10 @@ Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: state (type: string), locid (type: int) - outputColumnNames: state, locid + outputColumnNames: _col0, _col1 Statistics: Num rows: 8 Data size: 796 Basic stats: COMPLETE Column stats: NONE Group By Operator - keys: state (type: string), locid (type: int), '0' (type: string) + keys: _col0 (type: string), _col1 (type: int), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 32 Data size: 3184 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/annotate_stats_groupby2.q.out =================================================================== --- ql/src/test/results/clientpositive/annotate_stats_groupby2.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/annotate_stats_groupby2.q.out (working copy) @@ -148,10 +148,10 @@ Statistics: Num rows: 20 Data size: 200 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: state (type: string), country (type: string) - outputColumnNames: state, country + outputColumnNames: _col0, _col1 Statistics: Num rows: 20 Data size: 200 Basic stats: COMPLETE Column stats: NONE Group By Operator - keys: state (type: string), country (type: string), '0' (type: string) + keys: _col0 (type: string), _col1 (type: string), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 80 Data size: 800 Basic stats: COMPLETE Column stats: NONE @@ -325,10 +325,10 @@ Statistics: Num rows: 20 Data size: 200 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: state (type: string), country (type: string) - outputColumnNames: state, country + outputColumnNames: _col0, _col1 Statistics: Num rows: 20 Data size: 200 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator - keys: state (type: string), country (type: string), '0' (type: string) + keys: _col0 (type: string), _col1 (type: string), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 32 Data size: 8256 Basic stats: COMPLETE Column stats: COMPLETE @@ -439,10 +439,10 @@ Statistics: Num rows: 20 Data size: 200 Basic stats: COMPLETE Column stats: COMPLETE Select Operator expressions: state (type: string), country (type: string) - outputColumnNames: state, country + outputColumnNames: _col0, _col1 Statistics: Num rows: 20 Data size: 200 Basic stats: COMPLETE Column stats: COMPLETE Group By Operator - keys: state (type: string), country (type: string), '0' (type: string) + keys: _col0 (type: string), _col1 (type: string), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 80 Data size: 20640 Basic stats: COMPLETE Column stats: COMPLETE Index: ql/src/test/results/clientpositive/auto_join16.q.out =================================================================== --- ql/src/test/results/clientpositive/auto_join16.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/auto_join16.q.out (working copy) @@ -23,11 +23,11 @@ Stage: Stage-5 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:a + $hdt$_0:$hdt$_0:$hdt$_0:a Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:a + $hdt$_0:$hdt$_0:$hdt$_0:a TableScan alias: a Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/auto_join17.q.out =================================================================== --- ql/src/test/results/clientpositive/auto_join17.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/auto_join17.q.out (working copy) @@ -24,11 +24,11 @@ Stage: Stage-5 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:src1 + $hdt$_0:src1 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:src1 + $hdt$_0:src1 TableScan alias: src1 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/auto_join19.q.out =================================================================== --- ql/src/test/results/clientpositive/auto_join19.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/auto_join19.q.out (working copy) @@ -26,11 +26,11 @@ Stage: Stage-5 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_1:src2 + $hdt$_1:src2 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_1:src2 + $hdt$_1:src2 TableScan alias: src2 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/auto_join2.q.out =================================================================== --- ql/src/test/results/clientpositive/auto_join2.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/auto_join2.q.out (working copy) @@ -24,14 +24,14 @@ Stage: Stage-8 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:src1 + $hdt$_0:src1 Fetch Operator limit: -1 - $hdt$_0:$hdt$_2:src1 + $hdt$_2:src1 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:src1 + $hdt$_0:src1 TableScan alias: src1 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE @@ -46,7 +46,7 @@ keys: 0 _col0 (type: string) 1 _col0 (type: string) - $hdt$_0:$hdt$_2:src1 + $hdt$_2:src1 TableScan alias: src1 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/auto_join22.q.out =================================================================== --- ql/src/test/results/clientpositive/auto_join22.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/auto_join22.q.out (working copy) @@ -13,14 +13,14 @@ Stage: Stage-8 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:src4 + $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:src4 Fetch Operator limit: -1 $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:src4 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:src4 + $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:src4 TableScan alias: src4 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/auto_join27.q.out =================================================================== --- ql/src/test/results/clientpositive/auto_join27.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/auto_join27.q.out (working copy) @@ -73,11 +73,11 @@ Stage: Stage-7 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:src + $hdt$_0:$hdt$_1:$hdt$_1:src Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:src + $hdt$_0:$hdt$_1:$hdt$_1:src TableScan alias: src Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/auto_join3.q.out =================================================================== --- ql/src/test/results/clientpositive/auto_join3.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/auto_join3.q.out (working copy) @@ -24,14 +24,14 @@ Stage: Stage-6 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:src1 + $hdt$_0:src1 Fetch Operator limit: -1 - $hdt$_0:$hdt$_1:src1 + $hdt$_1:src1 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:src1 + $hdt$_0:src1 TableScan alias: src1 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE @@ -47,7 +47,7 @@ 0 _col0 (type: string) 1 _col0 (type: string) 2 _col0 (type: string) - $hdt$_0:$hdt$_1:src1 + $hdt$_1:src1 TableScan alias: src1 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/auto_join33.q.out =================================================================== --- ql/src/test/results/clientpositive/auto_join33.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/auto_join33.q.out (working copy) @@ -25,11 +25,11 @@ Stage: Stage-4 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:src + $hdt$_0:src Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:src + $hdt$_0:src TableScan alias: src Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/auto_join7.q.out =================================================================== --- ql/src/test/results/clientpositive/auto_join7.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/auto_join7.q.out (working copy) @@ -48,10 +48,8 @@ POSTHOOK: type: QUERY STAGE DEPENDENCIES: Stage-1 is a root stage - Stage-7 depends on stages: Stage-1 - Stage-6 depends on stages: Stage-7 - Stage-0 depends on stages: Stage-6 - Stage-3 depends on stages: Stage-0 + Stage-0 depends on stages: Stage-1 + Stage-2 depends on stages: Stage-0 STAGE PLANS: Stage: Stage-1 @@ -89,30 +87,6 @@ Map-reduce partition columns: _col0 (type: string) Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE value expressions: _col1 (type: string) - Reduce Operator Tree: - Join Operator - condition map: - Outer Join 0 to 1 - keys: - 0 _col0 (type: string) - 1 _col0 (type: string) - outputColumnNames: _col0, _col1, _col2, _col3 - Statistics: Num rows: 60 Data size: 642 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - - Stage: Stage-7 - Map Reduce Local Work - Alias -> Map Local Tables: - $hdt$_1:$hdt$_1:src1 - Fetch Operator - limit: -1 - Alias -> Map Local Operator Tree: - $hdt$_1:$hdt$_1:src1 TableScan alias: src1 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE @@ -123,38 +97,36 @@ expressions: key (type: string), value (type: string) outputColumnNames: _col0, _col1 Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE - HashTable Sink Operator - keys: - 0 _col0 (type: string) - 1 _col0 (type: string) + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: string) + Reduce Operator Tree: + Join Operator + condition map: + Outer Join 0 to 1 + Left Outer Join0 to 2 + keys: + 0 _col0 (type: string) + 1 _col0 (type: string) + 2 _col0 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 + Statistics: Num rows: 121 Data size: 1284 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: UDFToInteger(_col0) (type: int), _col1 (type: string), UDFToInteger(_col2) (type: int), _col3 (type: string), UDFToInteger(_col4) (type: int), _col5 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 + Statistics: Num rows: 121 Data size: 1284 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 121 Data size: 1284 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + name: default.dest1 - Stage: Stage-6 - Map Reduce - Map Operator Tree: - TableScan - Map Join Operator - condition map: - Left Outer Join0 to 1 - keys: - 0 _col0 (type: string) - 1 _col0 (type: string) - outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 - Statistics: Num rows: 66 Data size: 706 Basic stats: COMPLETE Column stats: NONE - Select Operator - expressions: UDFToInteger(_col0) (type: int), _col1 (type: string), UDFToInteger(_col2) (type: int), _col3 (type: string), UDFToInteger(_col4) (type: int), _col5 (type: string) - outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 - Statistics: Num rows: 66 Data size: 706 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false - Statistics: Num rows: 66 Data size: 706 Basic stats: COMPLETE Column stats: NONE - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe - name: default.dest1 - Local Work: - Map Reduce Local Work - Stage: Stage-0 Move Operator tables: @@ -165,7 +137,7 @@ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe name: default.dest1 - Stage: Stage-3 + Stage: Stage-2 Stats-Aggr Operator PREHOOK: query: FROM ( @@ -211,7 +183,7 @@ POSTHOOK: Input: default@src POSTHOOK: Output: default@dest1 POSTHOOK: Lineage: dest1.c1 EXPRESSION [(src)src1.FieldSchema(name:key, type:string, comment:default), ] -POSTHOOK: Lineage: dest1.c2 EXPRESSION [(src)src1.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: dest1.c2 SIMPLE [(src)src1.FieldSchema(name:value, type:string, comment:default), ] POSTHOOK: Lineage: dest1.c3 EXPRESSION [(src)src1.FieldSchema(name:key, type:string, comment:default), ] POSTHOOK: Lineage: dest1.c4 SIMPLE [(src)src1.FieldSchema(name:value, type:string, comment:default), ] POSTHOOK: Lineage: dest1.c5 EXPRESSION [(src)src1.FieldSchema(name:key, type:string, comment:default), ] Index: ql/src/test/results/clientpositive/auto_join8.q.out =================================================================== --- ql/src/test/results/clientpositive/auto_join8.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/auto_join8.q.out (working copy) @@ -46,11 +46,11 @@ Stage: Stage-5 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:src1 + $hdt$_1:$hdt$_1:$hdt$_1:src1 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:src1 + $hdt$_1:$hdt$_1:$hdt$_1:src1 TableScan alias: src1 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/auto_join9.q.out =================================================================== --- ql/src/test/results/clientpositive/auto_join9.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/auto_join9.q.out (working copy) @@ -24,11 +24,11 @@ Stage: Stage-5 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:src1 + $hdt$_0:src1 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:src1 + $hdt$_0:src1 TableScan alias: src1 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/auto_join_nulls.q.out =================================================================== --- ql/src/test/results/clientpositive/auto_join_nulls.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/auto_join_nulls.q.out (working copy) @@ -14,7 +14,7 @@ POSTHOOK: type: LOAD #### A masked pattern was here #### POSTHOOK: Output: default@myinput1 -Warning: Map Join MAPJOIN[19][bigTable=?] in task 'Stage-2:MAPRED' is a cross product +Warning: Map Join MAPJOIN[18][bigTable=?] in task 'Stage-2:MAPRED' is a cross product PREHOOK: query: SELECT sum(hash(a.key,a.value,b.key,b.value)) FROM myinput1 a JOIN myinput1 b PREHOOK: type: QUERY PREHOOK: Input: default@myinput1 @@ -24,7 +24,7 @@ POSTHOOK: Input: default@myinput1 #### A masked pattern was here #### 13630578 -Warning: Map Join MAPJOIN[18][bigTable=?] in task 'Stage-2:MAPRED' is a cross product +Warning: Map Join MAPJOIN[17][bigTable=?] in task 'Stage-2:MAPRED' is a cross product PREHOOK: query: SELECT sum(hash(a.key,a.value,b.key,b.value)) FROM myinput1 a LEFT OUTER JOIN myinput1 b PREHOOK: type: QUERY PREHOOK: Input: default@myinput1 Index: ql/src/test/results/clientpositive/auto_join_without_localtask.q.out =================================================================== --- ql/src/test/results/clientpositive/auto_join_without_localtask.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/auto_join_without_localtask.q.out (working copy) @@ -21,11 +21,11 @@ Stage: Stage-7 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_1:a + $hdt$_1:a Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_1:a + $hdt$_1:a TableScan alias: a Filter Operator @@ -91,11 +91,11 @@ Stage: Stage-8 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:a + $hdt$_0:a Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:a + $hdt$_0:a TableScan alias: a Filter Operator Index: ql/src/test/results/clientpositive/correlationoptimizer3.q.out =================================================================== --- ql/src/test/results/clientpositive/correlationoptimizer3.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/correlationoptimizer3.q.out (working copy) @@ -1228,14 +1228,14 @@ Stage: Stage-9 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:x + $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:x Fetch Operator limit: -1 - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:$hdt$_2:x + $hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:$hdt$_2:x Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:x + $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:x TableScan alias: x Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -1250,7 +1250,7 @@ keys: 0 _col0 (type: string) 1 _col0 (type: string) - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:$hdt$_2:x + $hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:$hdt$_2:x TableScan alias: x Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/correlationoptimizer6.q.out =================================================================== --- ql/src/test/results/clientpositive/correlationoptimizer6.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/correlationoptimizer6.q.out (working copy) @@ -500,14 +500,14 @@ Stage: Stage-8 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:x + $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:x Fetch Operator limit: -1 - $hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:$hdt$_1:x + $hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:x Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:x + $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:x TableScan alias: x Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE @@ -522,7 +522,7 @@ keys: 0 _col0 (type: string) 1 _col0 (type: string) - $hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:$hdt$_1:x + $hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:x TableScan alias: x Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -3822,11 +3822,11 @@ Stage: Stage-10 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:x + $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:x Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:x + $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:x TableScan alias: x Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE @@ -3894,11 +3894,11 @@ Stage: Stage-9 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:$hdt$_1:x + $hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:x Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:$hdt$_1:x + $hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:x TableScan alias: x Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/correlationoptimizer7.q.out =================================================================== --- ql/src/test/results/clientpositive/correlationoptimizer7.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/correlationoptimizer7.q.out (working copy) @@ -29,11 +29,11 @@ Stage: Stage-9 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:y + $hdt$_0:$hdt$_0:$hdt$_1:y Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:y + $hdt$_0:$hdt$_0:$hdt$_1:y TableScan alias: y Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -101,11 +101,11 @@ Stage: Stage-8 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_1:y + $hdt$_1:y Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_1:y + $hdt$_1:y TableScan alias: y Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -213,11 +213,11 @@ Stage: Stage-6 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:y + $hdt$_0:$hdt$_0:$hdt$_1:y Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:y + $hdt$_0:$hdt$_0:$hdt$_1:y TableScan alias: y Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -416,11 +416,11 @@ Stage: Stage-9 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:y + $hdt$_0:$hdt$_0:$hdt$_1:y Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:y + $hdt$_0:$hdt$_0:$hdt$_1:y TableScan alias: y Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -488,11 +488,11 @@ Stage: Stage-8 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_1:y + $hdt$_1:y Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_1:y + $hdt$_1:y TableScan alias: y Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -600,11 +600,11 @@ Stage: Stage-6 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:y + $hdt$_0:$hdt$_0:$hdt$_1:y Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:y + $hdt$_0:$hdt$_0:$hdt$_1:y TableScan alias: y Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/cross_product_check_2.q.out =================================================================== --- ql/src/test/results/clientpositive/cross_product_check_2.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/cross_product_check_2.q.out (working copy) @@ -24,7 +24,7 @@ POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@B -Warning: Map Join MAPJOIN[12][bigTable=?] in task 'Stage-3:MAPRED' is a cross product +Warning: Map Join MAPJOIN[11][bigTable=?] in task 'Stage-3:MAPRED' is a cross product PREHOOK: query: explain select * from A join B PREHOOK: type: QUERY POSTHOOK: query: explain select * from A join B @@ -38,11 +38,11 @@ Stage: Stage-4 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_1:b + $hdt$_1:b Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_1:b + $hdt$_1:b TableScan alias: b Statistics: Num rows: 10 Data size: 104 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/explain_logical.q.out =================================================================== --- ql/src/test/results/clientpositive/explain_logical.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/explain_logical.q.out (working copy) @@ -515,11 +515,11 @@ LOGICAL PLAN: -$hdt$_0:$hdt$_0:$hdt$_0:srcpart +$hdt$_0:$hdt$_0:srcpart TableScan (TS_0) alias: srcpart Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE - Filter Operator (FIL_14) + Filter Operator (FIL_13) predicate: key is not null (type: boolean) Statistics: Num rows: 1000 Data size: 10624 Basic stats: COMPLETE Column stats: NONE Select Operator (SEL_2) @@ -543,18 +543,18 @@ expressions: _col0 (type: string), _col2 (type: string) outputColumnNames: _col0, _col1 Statistics: Num rows: 1100 Data size: 11686 Basic stats: COMPLETE Column stats: NONE - File Output Operator (FS_13) + File Output Operator (FS_12) compressed: false Statistics: Num rows: 1100 Data size: 11686 Basic stats: COMPLETE Column stats: NONE table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe -$hdt$_0:$hdt$_1:src2 +$hdt$_1:src2 TableScan (TS_4) alias: src2 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - Filter Operator (FIL_15) + Filter Operator (FIL_14) predicate: key is not null (type: boolean) Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE Select Operator (SEL_5) Index: ql/src/test/results/clientpositive/expr_cached.q.out =================================================================== --- ql/src/test/results/clientpositive/expr_cached.q.out (revision 0) +++ ql/src/test/results/clientpositive/expr_cached.q.out (working copy) @@ -0,0 +1,11 @@ +PREHOOK: query: -- should return a value +select * from src tablesample (1 rows) where length(key) <> reverse(key) +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: -- should return a value +select * from src tablesample (1 rows) where length(key) <> reverse(key) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +238 val_238 Index: ql/src/test/results/clientpositive/groupby_cube1.q.out =================================================================== --- ql/src/test/results/clientpositive/groupby_cube1.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/groupby_cube1.q.out (working copy) @@ -37,11 +37,11 @@ Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE Select Operator expressions: key (type: string), val (type: string) - outputColumnNames: key, val + outputColumnNames: _col0, _col1 Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE Group By Operator aggregations: count(1) - keys: key (type: string), val (type: string), '0' (type: string) + keys: _col0 (type: string), _col1 (type: string), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE @@ -103,6 +103,90 @@ NULL 28 1 NULL NULL 6 PREHOOK: query: EXPLAIN +SELECT key, val, GROUPING__ID, count(1) FROM T1 GROUP BY key, val with cube +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT key, val, GROUPING__ID, count(1) FROM T1 GROUP BY key, val with cube +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: t1 + Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE + Select Operator + expressions: key (type: string), val (type: string) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE + Group By Operator + aggregations: count(1) + keys: _col0 (type: string), _col1 (type: string), '0' (type: string) + mode: hash + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string) + sort order: +++ + Map-reduce partition columns: _col0 (type: string), _col1 (type: string), _col2 (type: string) + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + value expressions: _col3 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: string) + mode: mergepartial + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + Select Operator + expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: bigint) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: SELECT key, val, GROUPING__ID, count(1) FROM T1 GROUP BY key, val with cube +PREHOOK: type: QUERY +PREHOOK: Input: default@t1 +#### A masked pattern was here #### +POSTHOOK: query: SELECT key, val, GROUPING__ID, count(1) FROM T1 GROUP BY key, val with cube +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t1 +#### A masked pattern was here #### +1 11 3 1 +1 NULL 1 1 +2 12 3 1 +2 NULL 1 1 +3 13 3 1 +3 NULL 1 1 +7 17 3 1 +7 NULL 1 1 +8 18 3 1 +8 28 3 1 +8 NULL 1 2 +NULL 11 2 1 +NULL 12 2 1 +NULL 13 2 1 +NULL 17 2 1 +NULL 18 2 1 +NULL 28 2 1 +NULL NULL 0 6 +PREHOOK: query: EXPLAIN SELECT key, count(distinct val) FROM T1 GROUP BY key with cube PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN @@ -193,11 +277,11 @@ Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE Select Operator expressions: key (type: string), val (type: string) - outputColumnNames: key, val + outputColumnNames: _col0, _col1 Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE Group By Operator aggregations: count(1) - keys: key (type: string), val (type: string), '0' (type: string) + keys: _col0 (type: string), _col1 (type: string), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE Index: ql/src/test/results/clientpositive/groupby_grouping_sets2.q.out =================================================================== --- ql/src/test/results/clientpositive/groupby_grouping_sets2.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/groupby_grouping_sets2.q.out (working copy) @@ -36,11 +36,11 @@ Statistics: Num rows: 0 Data size: 36 Basic stats: PARTIAL Column stats: NONE Select Operator expressions: a (type: string), b (type: string) - outputColumnNames: a, b + outputColumnNames: _col0, _col1 Statistics: Num rows: 0 Data size: 36 Basic stats: PARTIAL Column stats: NONE Group By Operator aggregations: count() - keys: a (type: string), b (type: string) + keys: _col0 (type: string), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE @@ -142,11 +142,11 @@ Statistics: Num rows: 0 Data size: 36 Basic stats: PARTIAL Column stats: NONE Select Operator expressions: a (type: string), b (type: string), c (type: string) - outputColumnNames: a, b, c + outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 0 Data size: 36 Basic stats: PARTIAL Column stats: NONE Group By Operator - aggregations: sum(c) - keys: a (type: string), b (type: string) + aggregations: sum(_col2) + keys: _col0 (type: string), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE @@ -269,12 +269,12 @@ alias: t2 Statistics: Num rows: 6 Data size: 42 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: a (type: string), b (type: string), c (type: int), d (type: int) - outputColumnNames: a, b, c, d + expressions: a (type: string), b (type: string), (c + d) (type: int) + outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 6 Data size: 42 Basic stats: COMPLETE Column stats: NONE Group By Operator - aggregations: sum((c + d)) - keys: a (type: string), b (type: string) + aggregations: sum(_col2) + keys: _col0 (type: string), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 6 Data size: 42 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/groupby_grouping_sets3.q.out =================================================================== --- ql/src/test/results/clientpositive/groupby_grouping_sets3.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/groupby_grouping_sets3.q.out (working copy) @@ -55,11 +55,11 @@ Statistics: Num rows: 0 Data size: 72 Basic stats: PARTIAL Column stats: NONE Select Operator expressions: a (type: string), b (type: string), c (type: string) - outputColumnNames: a, b, c + outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 0 Data size: 72 Basic stats: PARTIAL Column stats: NONE Group By Operator - aggregations: avg(c), count() - keys: a (type: string), b (type: string), '0' (type: string) + aggregations: avg(_col2), count() + keys: _col0 (type: string), _col1 (type: string), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2, _col3, _col4 Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE @@ -142,11 +142,11 @@ Statistics: Num rows: 0 Data size: 72 Basic stats: PARTIAL Column stats: NONE Select Operator expressions: a (type: string), b (type: string), c (type: string) - outputColumnNames: a, b, c + outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 0 Data size: 72 Basic stats: PARTIAL Column stats: NONE Group By Operator - aggregations: avg(c), count() - keys: a (type: string), b (type: string) + aggregations: avg(_col2), count() + keys: _col0 (type: string), _col1 (type: string) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE Index: ql/src/test/results/clientpositive/groupby_grouping_sets5.q.out =================================================================== --- ql/src/test/results/clientpositive/groupby_grouping_sets5.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/groupby_grouping_sets5.q.out (working copy) @@ -42,43 +42,36 @@ Statistics: Num rows: 0 Data size: 36 Basic stats: PARTIAL Column stats: NONE Select Operator expressions: a (type: string), b (type: string) - outputColumnNames: a, b + outputColumnNames: _col0, _col1 Statistics: Num rows: 0 Data size: 36 Basic stats: PARTIAL Column stats: NONE Group By Operator - aggregations: count(1) - keys: a (type: string), b (type: string) + keys: _col0 (type: string), _col1 (type: string) mode: hash - outputColumnNames: _col0, _col1, _col2 + outputColumnNames: _col0, _col1 Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: string), _col1 (type: string) sort order: ++ Map-reduce partition columns: _col0 (type: string), _col1 (type: string) Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE - value expressions: _col2 (type: bigint) Reduce Operator Tree: Group By Operator - aggregations: count(VALUE._col0) keys: KEY._col0 (type: string), KEY._col1 (type: string) mode: mergepartial - outputColumnNames: _col0, _col1, _col2 + outputColumnNames: _col0, _col1 Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE - Select Operator - expressions: _col0 (type: string), _col1 (type: string) - outputColumnNames: _col0, _col1 + Group By Operator + aggregations: count() + keys: _col0 (type: string), _col1 (type: string), '0' (type: string) + mode: hash + outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE - Group By Operator - aggregations: count() - keys: _col0 (type: string), _col1 (type: string), '0' (type: string) - mode: hash - outputColumnNames: _col0, _col1, _col2, _col3 - Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe Stage: Stage-2 Map Reduce @@ -165,43 +158,36 @@ Statistics: Num rows: 0 Data size: 36 Basic stats: PARTIAL Column stats: NONE Select Operator expressions: a (type: string), b (type: string) - outputColumnNames: a, b + outputColumnNames: _col0, _col1 Statistics: Num rows: 0 Data size: 36 Basic stats: PARTIAL Column stats: NONE Group By Operator - aggregations: count(1) - keys: a (type: string), b (type: string) + keys: _col0 (type: string), _col1 (type: string) mode: hash - outputColumnNames: _col0, _col1, _col2 + outputColumnNames: _col0, _col1 Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE Reduce Output Operator key expressions: _col0 (type: string), _col1 (type: string) sort order: ++ Map-reduce partition columns: _col0 (type: string), _col1 (type: string) Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE - value expressions: _col2 (type: bigint) Reduce Operator Tree: Group By Operator - aggregations: count(VALUE._col0) keys: KEY._col0 (type: string), KEY._col1 (type: string) mode: mergepartial - outputColumnNames: _col0, _col1, _col2 + outputColumnNames: _col0, _col1 Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE - Select Operator - expressions: _col0 (type: string), _col1 (type: string) - outputColumnNames: _col0, _col1 + Group By Operator + aggregations: count() + keys: _col0 (type: string), _col1 (type: string) + mode: hash + outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE - Group By Operator - aggregations: count() - keys: _col0 (type: string), _col1 (type: string) - mode: hash - outputColumnNames: _col0, _col1, _col2 - Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe Stage: Stage-2 Map Reduce Index: ql/src/test/results/clientpositive/groupby_grouping_sets6.q.out =================================================================== --- ql/src/test/results/clientpositive/groupby_grouping_sets6.q.out (revision 0) +++ ql/src/test/results/clientpositive/groupby_grouping_sets6.q.out (working copy) @@ -0,0 +1,176 @@ +PREHOOK: query: CREATE TABLE T1(a STRING, b STRING, c STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' STORED AS TEXTFILE +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@T1 +POSTHOOK: query: CREATE TABLE T1(a STRING, b STRING, c STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' STORED AS TEXTFILE +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@T1 +PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/grouping_sets.txt' INTO TABLE T1 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@t1 +POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/grouping_sets.txt' INTO TABLE T1 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@t1 +PREHOOK: query: -- This filter is not pushed down +EXPLAIN +SELECT a, b FROM +(SELECT a, b from T1 group by a, b grouping sets ( (a,b),a )) res +WHERE res.a=5 +PREHOOK: type: QUERY +POSTHOOK: query: -- This filter is not pushed down +EXPLAIN +SELECT a, b FROM +(SELECT a, b from T1 group by a, b grouping sets ( (a,b),a )) res +WHERE res.a=5 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: t1 + Statistics: Num rows: 0 Data size: 36 Basic stats: PARTIAL Column stats: NONE + Select Operator + expressions: a (type: string), b (type: string) + outputColumnNames: a, b + Statistics: Num rows: 0 Data size: 36 Basic stats: PARTIAL Column stats: NONE + Group By Operator + keys: a (type: string), b (type: string), '0' (type: string) + mode: hash + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string) + sort order: +++ + Map-reduce partition columns: _col0 (type: string), _col1 (type: string), _col2 (type: string) + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + Reduce Operator Tree: + Group By Operator + keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: string) + mode: mergepartial + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + Select Operator + expressions: _col0 (type: string), _col1 (type: string) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + Filter Operator + predicate: (_col0 = 5) (type: boolean) + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + Select Operator + expressions: '5' (type: string), _col1 (type: string) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: SELECT a, b FROM +(SELECT a, b from T1 group by a, b grouping sets ( (a,b),a )) res +WHERE res.a=5 +PREHOOK: type: QUERY +PREHOOK: Input: default@t1 +#### A masked pattern was here #### +POSTHOOK: query: SELECT a, b FROM +(SELECT a, b from T1 group by a, b grouping sets ( (a,b),a )) res +WHERE res.a=5 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t1 +#### A masked pattern was here #### +5 NULL +5 2 +PREHOOK: query: -- This filter is pushed down through aggregate with grouping sets by Calcite +EXPLAIN +SELECT a, b FROM +(SELECT a, b from T1 group by a, b grouping sets ( (a,b),a )) res +WHERE res.a=5 +PREHOOK: type: QUERY +POSTHOOK: query: -- This filter is pushed down through aggregate with grouping sets by Calcite +EXPLAIN +SELECT a, b FROM +(SELECT a, b from T1 group by a, b grouping sets ( (a,b),a )) res +WHERE res.a=5 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: t1 + Statistics: Num rows: 0 Data size: 36 Basic stats: PARTIAL Column stats: NONE + Filter Operator + predicate: (UDFToDouble(a) = 5.0) (type: boolean) + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + Select Operator + expressions: '5' (type: string), b (type: string) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + Group By Operator + keys: _col0 (type: string), _col1 (type: string), '0' (type: string) + mode: hash + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string) + sort order: +++ + Map-reduce partition columns: _col0 (type: string), _col1 (type: string), _col2 (type: string) + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + Reduce Operator Tree: + Group By Operator + keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: string) + mode: mergepartial + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + Select Operator + expressions: _col0 (type: string), _col1 (type: string) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: SELECT a, b FROM +(SELECT a, b from T1 group by a, b grouping sets ( (a,b),a )) res +WHERE res.a=5 +PREHOOK: type: QUERY +PREHOOK: Input: default@t1 +#### A masked pattern was here #### +POSTHOOK: query: SELECT a, b FROM +(SELECT a, b from T1 group by a, b grouping sets ( (a,b),a )) res +WHERE res.a=5 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t1 +#### A masked pattern was here #### +5 NULL +5 2 Index: ql/src/test/results/clientpositive/groupby_rollup1.q.out =================================================================== --- ql/src/test/results/clientpositive/groupby_rollup1.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/groupby_rollup1.q.out (working copy) @@ -37,11 +37,11 @@ Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE Select Operator expressions: key (type: string), val (type: string) - outputColumnNames: key, val + outputColumnNames: _col0, _col1 Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE Group By Operator aggregations: count(1) - keys: key (type: string), val (type: string), '0' (type: string) + keys: _col0 (type: string), _col1 (type: string), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE @@ -187,11 +187,11 @@ Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE Select Operator expressions: key (type: string), val (type: string) - outputColumnNames: key, val + outputColumnNames: _col0, _col1 Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE Group By Operator aggregations: count(1) - keys: key (type: string), val (type: string), '0' (type: string) + keys: _col0 (type: string), _col1 (type: string), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE Index: ql/src/test/results/clientpositive/infer_bucket_sort_grouping_operators.q.out =================================================================== --- ql/src/test/results/clientpositive/infer_bucket_sort_grouping_operators.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/infer_bucket_sort_grouping_operators.q.out (working copy) @@ -44,11 +44,11 @@ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: key (type: string), value (type: string) - outputColumnNames: key, value + outputColumnNames: _col0, _col1 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Group By Operator aggregations: count(1) - keys: key (type: string), value (type: string), '0' (type: string) + keys: _col0 (type: string), _col1 (type: string), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1500 Data size: 15936 Basic stats: COMPLETE Column stats: NONE @@ -231,11 +231,11 @@ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: key (type: string), value (type: string) - outputColumnNames: key, value + outputColumnNames: _col0, _col1 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Group By Operator aggregations: count(1) - keys: key (type: string), value (type: string), '0' (type: string) + keys: _col0 (type: string), _col1 (type: string), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE @@ -418,11 +418,11 @@ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: key (type: string), value (type: string) - outputColumnNames: key, value + outputColumnNames: _col0, _col1 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Group By Operator aggregations: count(1) - keys: key (type: string), value (type: string), '0' (type: string) + keys: _col0 (type: string), _col1 (type: string), '0' (type: string) mode: hash outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1000 Data size: 10624 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/input23.q.out =================================================================== --- ql/src/test/results/clientpositive/input23.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/input23.q.out (working copy) @@ -129,7 +129,7 @@ name: default.srcpart name: default.srcpart Truncated Path -> Alias: - /srcpart/ds=2008-04-08/hr=11 [$hdt$_0:$hdt$_0:a] + /srcpart/ds=2008-04-08/hr=11 [$hdt$_0:a] Needs Tagging: true Reduce Operator Tree: Join Operator Index: ql/src/test/results/clientpositive/join17.q.out =================================================================== --- ql/src/test/results/clientpositive/join17.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/join17.q.out (working copy) @@ -153,7 +153,7 @@ name: default.src name: default.src Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_0:src1, $hdt$_0:$hdt$_1:src1] + /src [$hdt$_0:src1, $hdt$_1:src1] Needs Tagging: true Reduce Operator Tree: Join Operator Index: ql/src/test/results/clientpositive/join32_lessSize.q.out =================================================================== --- ql/src/test/results/clientpositive/join32_lessSize.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/join32_lessSize.q.out (working copy) @@ -1931,11 +1931,11 @@ Stage: Stage-9 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:y + $hdt$_0:$hdt$_0:$hdt$_0:y Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:y + $hdt$_0:$hdt$_0:$hdt$_0:y TableScan alias: y Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE @@ -2089,12 +2089,12 @@ name: default.src1 name: default.src1 Truncated Path -> Alias: - /src1 [$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:x] + /src1 [$hdt$_0:$hdt$_0:$hdt$_1:x] Stage: Stage-8 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_1:z + $hdt$_1:z Fetch Operator limit: -1 Partition Description: @@ -2144,7 +2144,7 @@ name: default.srcpart name: default.srcpart Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_1:z + $hdt$_1:z TableScan alias: z Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/join34.q.out =================================================================== --- ql/src/test/results/clientpositive/join34.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/join34.q.out (working copy) @@ -148,11 +148,11 @@ Stage: Stage-6 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_1:x + $hdt$_1:x Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_1:x + $hdt$_1:x TableScan alias: x Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -374,7 +374,7 @@ name: default.src1 name: default.src1 Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_0-subquery1:$hdt$_0-subquery1:x, $hdt$_0:$hdt$_0-subquery2:$hdt$_0-subquery2:x] + /src [$hdt$_0-subquery1:$hdt$_0-subquery1:x, $hdt$_0-subquery2:$hdt$_0-subquery2:x] Stage: Stage-0 Move Operator Index: ql/src/test/results/clientpositive/join35.q.out =================================================================== --- ql/src/test/results/clientpositive/join35.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/join35.q.out (working copy) @@ -232,7 +232,7 @@ name: default.src name: default.src Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_0-subquery1:$hdt$_0-subquery1:$hdt$_0:$hdt$_0:x] + /src [$hdt$_0-subquery1:$hdt$_0-subquery1:$hdt$_0:$hdt$_0:x] Needs Tagging: false Reduce Operator Tree: Group By Operator @@ -262,11 +262,11 @@ Stage: Stage-7 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_1:x + $hdt$_1:x Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_1:x + $hdt$_1:x TableScan alias: x Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -569,7 +569,7 @@ name: default.src name: default.src Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_0-subquery2:$hdt$_0-subquery2:$hdt$_0:$hdt$_0:x] + /src [$hdt$_0-subquery2:$hdt$_0-subquery2:$hdt$_0:$hdt$_0:x] Needs Tagging: false Reduce Operator Tree: Group By Operator Index: ql/src/test/results/clientpositive/join7.q.out =================================================================== --- ql/src/test/results/clientpositive/join7.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/join7.q.out (working copy) @@ -48,9 +48,8 @@ POSTHOOK: type: QUERY STAGE DEPENDENCIES: Stage-1 is a root stage - Stage-2 depends on stages: Stage-1 - Stage-0 depends on stages: Stage-2 - Stage-3 depends on stages: Stage-0 + Stage-0 depends on stages: Stage-1 + Stage-2 depends on stages: Stage-0 STAGE PLANS: Stage: Stage-1 @@ -88,33 +87,7 @@ Map-reduce partition columns: _col0 (type: string) Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE value expressions: _col1 (type: string) - Reduce Operator Tree: - Join Operator - condition map: - Outer Join 0 to 1 - keys: - 0 _col0 (type: string) - 1 _col0 (type: string) - outputColumnNames: _col0, _col1, _col2, _col3 - Statistics: Num rows: 60 Data size: 642 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - - Stage: Stage-2 - Map Reduce - Map Operator Tree: TableScan - Reduce Output Operator - key expressions: _col0 (type: string) - sort order: + - Map-reduce partition columns: _col0 (type: string) - Statistics: Num rows: 60 Data size: 642 Basic stats: COMPLETE Column stats: NONE - value expressions: _col1 (type: string), _col2 (type: string), _col3 (type: string) - TableScan alias: src1 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Filter Operator @@ -133,19 +106,21 @@ Reduce Operator Tree: Join Operator condition map: - Left Outer Join0 to 1 + Outer Join 0 to 1 + Left Outer Join0 to 2 keys: 0 _col0 (type: string) 1 _col0 (type: string) + 2 _col0 (type: string) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 - Statistics: Num rows: 66 Data size: 706 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 121 Data size: 1284 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: UDFToInteger(_col0) (type: int), _col1 (type: string), UDFToInteger(_col2) (type: int), _col3 (type: string), UDFToInteger(_col4) (type: int), _col5 (type: string) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 - Statistics: Num rows: 66 Data size: 706 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 121 Data size: 1284 Basic stats: COMPLETE Column stats: NONE File Output Operator compressed: false - Statistics: Num rows: 66 Data size: 706 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 121 Data size: 1284 Basic stats: COMPLETE Column stats: NONE table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat @@ -162,7 +137,7 @@ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe name: default.dest1 - Stage: Stage-3 + Stage: Stage-2 Stats-Aggr Operator PREHOOK: query: FROM ( @@ -208,7 +183,7 @@ POSTHOOK: Input: default@src POSTHOOK: Output: default@dest1 POSTHOOK: Lineage: dest1.c1 EXPRESSION [(src)src1.FieldSchema(name:key, type:string, comment:default), ] -POSTHOOK: Lineage: dest1.c2 EXPRESSION [(src)src1.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: dest1.c2 SIMPLE [(src)src1.FieldSchema(name:value, type:string, comment:default), ] POSTHOOK: Lineage: dest1.c3 EXPRESSION [(src)src1.FieldSchema(name:key, type:string, comment:default), ] POSTHOOK: Lineage: dest1.c4 SIMPLE [(src)src1.FieldSchema(name:value, type:string, comment:default), ] POSTHOOK: Lineage: dest1.c5 EXPRESSION [(src)src1.FieldSchema(name:key, type:string, comment:default), ] @@ -221,9 +196,6 @@ POSTHOOK: type: QUERY POSTHOOK: Input: default@dest1 #### A masked pattern was here #### -NULL NULL 24 val_24 NULL NULL -NULL NULL 24 val_24 NULL NULL -NULL NULL 20 val_20 NULL NULL 11 val_11 NULL NULL NULL NULL 12 val_12 NULL NULL NULL NULL 12 val_12 NULL NULL NULL NULL @@ -235,3 +207,6 @@ 18 val_18 18 val_18 NULL NULL 18 val_18 18 val_18 NULL NULL 19 val_19 19 val_19 NULL NULL +NULL NULL 20 val_20 NULL NULL +NULL NULL 24 val_24 NULL NULL +NULL NULL 24 val_24 NULL NULL Index: ql/src/test/results/clientpositive/join9.q.out =================================================================== --- ql/src/test/results/clientpositive/join9.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/join9.q.out (working copy) @@ -214,8 +214,8 @@ name: default.srcpart name: default.srcpart Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_1:src2] - /srcpart/ds=2008-04-08/hr=12 [$hdt$_0:$hdt$_0:src1] + /src [$hdt$_1:src2] + /srcpart/ds=2008-04-08/hr=12 [$hdt$_0:src1] Needs Tagging: true Reduce Operator Tree: Join Operator Index: ql/src/test/results/clientpositive/louter_join_ppr.q.out =================================================================== --- ql/src/test/results/clientpositive/louter_join_ppr.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/louter_join_ppr.q.out (working copy) @@ -761,11 +761,11 @@ name: default.srcpart name: default.srcpart Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_1:b] - /srcpart/ds=2008-04-08/hr=11 [$hdt$_0:$hdt$_0:a] - /srcpart/ds=2008-04-08/hr=12 [$hdt$_0:$hdt$_0:a] - /srcpart/ds=2008-04-09/hr=11 [$hdt$_0:$hdt$_0:a] - /srcpart/ds=2008-04-09/hr=12 [$hdt$_0:$hdt$_0:a] + /src [$hdt$_1:b] + /srcpart/ds=2008-04-08/hr=11 [$hdt$_0:a] + /srcpart/ds=2008-04-08/hr=12 [$hdt$_0:a] + /srcpart/ds=2008-04-09/hr=11 [$hdt$_0:a] + /srcpart/ds=2008-04-09/hr=12 [$hdt$_0:a] Needs Tagging: true Reduce Operator Tree: Join Operator @@ -1522,9 +1522,9 @@ name: default.srcpart name: default.srcpart Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_1:b] - /srcpart/ds=2008-04-08/hr=11 [$hdt$_0:$hdt$_0:a] - /srcpart/ds=2008-04-08/hr=12 [$hdt$_0:$hdt$_0:a] + /src [$hdt$_1:b] + /srcpart/ds=2008-04-08/hr=11 [$hdt$_0:a] + /srcpart/ds=2008-04-08/hr=12 [$hdt$_0:a] Needs Tagging: true Reduce Operator Tree: Join Operator Index: ql/src/test/results/clientpositive/mapjoin_mapjoin.q.out =================================================================== --- ql/src/test/results/clientpositive/mapjoin_mapjoin.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/mapjoin_mapjoin.q.out (working copy) @@ -574,11 +574,11 @@ Stage: Stage-9 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_1:src + $hdt$_0:$hdt$_1:src Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_1:src + $hdt$_0:$hdt$_1:src TableScan alias: src Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE @@ -627,11 +627,11 @@ Stage: Stage-8 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_2:src + $hdt$_0:$hdt$_2:src Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_2:src + $hdt$_0:$hdt$_2:src TableScan alias: src Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/metadataonly1.q.out =================================================================== --- ql/src/test/results/clientpositive/metadataonly1.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/metadataonly1.q.out (working copy) @@ -614,8 +614,8 @@ value expressions: _col0 (type: string) auto parallelism: false Path -> Alias: - -mr-10005default.test1{ds=1} [$hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:a2] - -mr-10006default.test1{ds=2} [$hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:a2] + -mr-10005default.test1{ds=1} [$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:a2] + -mr-10006default.test1{ds=2} [$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:a2] Path -> Partition: -mr-10005default.test1{ds=1} Partition @@ -696,8 +696,8 @@ name: default.test1 name: default.test1 Truncated Path -> Alias: - -mr-10005default.test1{ds=1} [$hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:a2] - -mr-10006default.test1{ds=2} [$hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:a2] + -mr-10005default.test1{ds=1} [$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:a2] + -mr-10006default.test1{ds=2} [$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:a2] Needs Tagging: false Reduce Operator Tree: Group By Operator @@ -858,8 +858,8 @@ name: default.test1 name: default.test1 Truncated Path -> Alias: - /test1/ds=1 [$hdt$_0:$hdt$_0:$hdt$_0:a2] - /test1/ds=2 [$hdt$_0:$hdt$_0:$hdt$_0:a2] + /test1/ds=1 [$hdt$_0:$hdt$_0:a2] + /test1/ds=2 [$hdt$_0:$hdt$_0:a2] #### A masked pattern was here #### Needs Tagging: true Reduce Operator Tree: Index: ql/src/test/results/clientpositive/multiMapJoin2.q.out =================================================================== --- ql/src/test/results/clientpositive/multiMapJoin2.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/multiMapJoin2.q.out (working copy) @@ -23,14 +23,14 @@ Stage: Stage-8 Map Reduce Local Work Alias -> Map Local Tables: - null-subquery1:$hdt$_0-subquery1:$hdt$_0:$hdt$_1:y1 + null-subquery1:$hdt$_0-subquery1:$hdt$_1:y1 Fetch Operator limit: -1 - null-subquery2:$hdt$_0-subquery2:$hdt$_0:$hdt$_1:y1 + null-subquery2:$hdt$_0-subquery2:$hdt$_1:y1 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - null-subquery1:$hdt$_0-subquery1:$hdt$_0:$hdt$_1:y1 + null-subquery1:$hdt$_0-subquery1:$hdt$_1:y1 TableScan alias: y1 Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -45,7 +45,7 @@ keys: 0 _col0 (type: string) 1 _col0 (type: string) - null-subquery2:$hdt$_0-subquery2:$hdt$_0:$hdt$_1:y1 + null-subquery2:$hdt$_0-subquery2:$hdt$_1:y1 TableScan alias: y1 Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -266,11 +266,11 @@ Stage: Stage-9 Map Reduce Local Work Alias -> Map Local Tables: - null-subquery2:$hdt$_0-subquery2:$hdt$_0:$hdt$_1:y1 + null-subquery2:$hdt$_0-subquery2:$hdt$_1:y1 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - null-subquery2:$hdt$_0-subquery2:$hdt$_0:$hdt$_1:y1 + null-subquery2:$hdt$_0-subquery2:$hdt$_1:y1 TableScan alias: y1 Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -319,11 +319,11 @@ Stage: Stage-8 Map Reduce Local Work Alias -> Map Local Tables: - null-subquery1:$hdt$_0-subquery1:$hdt$_0:$hdt$_1:y1 + null-subquery1:$hdt$_0-subquery1:$hdt$_1:y1 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - null-subquery1:$hdt$_0-subquery1:$hdt$_0:$hdt$_1:y1 + null-subquery1:$hdt$_0-subquery1:$hdt$_1:y1 TableScan alias: y1 Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -555,11 +555,11 @@ Stage: Stage-6 Map Reduce Local Work Alias -> Map Local Tables: - null-subquery2:$hdt$_0-subquery2:$hdt$_0:$hdt$_1:x1 + null-subquery2:$hdt$_0-subquery2:$hdt$_1:x1 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - null-subquery2:$hdt$_0-subquery2:$hdt$_0:$hdt$_1:x1 + null-subquery2:$hdt$_0-subquery2:$hdt$_1:x1 TableScan alias: x1 Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -761,11 +761,11 @@ Stage: Stage-17 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:y1 + $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:y1 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:y1 + $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:y1 TableScan alias: y1 Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -993,11 +993,11 @@ Stage: Stage-18 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:$hdt$_2:y1 + $hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_2:y1 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:$hdt$_2:y1 + $hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_2:y1 TableScan alias: y1 Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -1159,14 +1159,14 @@ Stage: Stage-9 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:y1 + $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:y1 Fetch Operator limit: -1 - $hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:$hdt$_2:y1 + $hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_2:y1 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:y1 + $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:y1 TableScan alias: y1 Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -1181,7 +1181,7 @@ keys: 0 _col0 (type: string) 1 _col0 (type: string) - $hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:$hdt$_2:y1 + $hdt$_0:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_2:y1 TableScan alias: y1 Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -1658,11 +1658,11 @@ Stage: Stage-14 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:x1 + $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:x1 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:x1 + $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:x1 TableScan alias: x1 Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -1823,11 +1823,11 @@ Stage: Stage-7 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:x1 + $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:x1 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:x1 + $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:x1 TableScan alias: x1 Statistics: Num rows: 25 Data size: 191 Basic stats: COMPLETE Column stats: NONE @@ -2222,11 +2222,11 @@ Stage: Stage-15 Map Reduce Local Work Alias -> Map Local Tables: - null-subquery1:$hdt$_0-subquery1:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:$hdt$_1:a + null-subquery1:$hdt$_0-subquery1:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:a Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - null-subquery1:$hdt$_0-subquery1:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:$hdt$_1:a + null-subquery1:$hdt$_0-subquery1:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:a TableScan alias: a Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE @@ -2382,11 +2382,11 @@ Stage: Stage-16 Map Reduce Local Work Alias -> Map Local Tables: - null-subquery2:$hdt$_0-subquery2:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:$hdt$_1:a + null-subquery2:$hdt$_0-subquery2:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:a Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - null-subquery2:$hdt$_0-subquery2:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:$hdt$_1:a + null-subquery2:$hdt$_0-subquery2:$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:a TableScan alias: a Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/ppd_join_filter.q.out =================================================================== --- ql/src/test/results/clientpositive/ppd_join_filter.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/ppd_join_filter.q.out (working copy) @@ -202,7 +202,7 @@ name: default.src name: default.src Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:a] + /src [$hdt$_1:$hdt$_1:$hdt$_1:a] Needs Tagging: false Reduce Operator Tree: Group By Operator @@ -345,7 +345,7 @@ name: default.src name: default.src Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_0:a] + /src [$hdt$_0:a] #### A masked pattern was here #### Needs Tagging: true Reduce Operator Tree: @@ -627,7 +627,7 @@ name: default.src name: default.src Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:a] + /src [$hdt$_1:$hdt$_1:$hdt$_1:a] Needs Tagging: false Reduce Operator Tree: Group By Operator @@ -762,7 +762,7 @@ name: default.src name: default.src Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_0:a] + /src [$hdt$_0:a] #### A masked pattern was here #### Needs Tagging: true Reduce Operator Tree: @@ -1040,7 +1040,7 @@ name: default.src name: default.src Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:a] + /src [$hdt$_1:$hdt$_1:$hdt$_1:a] Needs Tagging: false Reduce Operator Tree: Group By Operator @@ -1179,7 +1179,7 @@ name: default.src name: default.src Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_0:a] + /src [$hdt$_0:a] #### A masked pattern was here #### Needs Tagging: true Reduce Operator Tree: @@ -1461,7 +1461,7 @@ name: default.src name: default.src Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_1:$hdt$_1:$hdt$_1:a] + /src [$hdt$_1:$hdt$_1:$hdt$_1:a] Needs Tagging: false Reduce Operator Tree: Group By Operator @@ -1596,7 +1596,7 @@ name: default.src name: default.src Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_0:a] + /src [$hdt$_0:a] #### A masked pattern was here #### Needs Tagging: true Reduce Operator Tree: Index: ql/src/test/results/clientpositive/ppd_union_view.q.out =================================================================== --- ql/src/test/results/clientpositive/ppd_union_view.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/ppd_union_view.q.out (working copy) @@ -476,8 +476,8 @@ outputColumnNames: _col1, _col3 Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE Select Operator - expressions: _col3 (type: string), _col1 (type: string) - outputColumnNames: _col0, _col1 + expressions: _col3 (type: string), _col1 (type: string), '2011-10-15' (type: string) + outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE File Output Operator compressed: false @@ -488,8 +488,8 @@ input format: org.apache.hadoop.mapred.SequenceFileInputFormat output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat properties: - columns _col0,_col1 - columns.types string,string + columns _col0,_col1,_col2 + columns.types string,string,string escape.delim \ serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe @@ -505,13 +505,13 @@ Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE GatherStats: false Select Operator - expressions: key (type: string), value (type: string) - outputColumnNames: _col0, _col1 + expressions: key (type: string), value (type: string), '2011-10-15' (type: string) + outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE Union Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col0 (type: string), _col1 (type: string), '2011-10-15' (type: string) + expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string) outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE File Output Operator @@ -540,7 +540,7 @@ Union Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col0 (type: string), _col1 (type: string), '2011-10-15' (type: string) + expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string) outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE File Output Operator @@ -573,8 +573,8 @@ input format: org.apache.hadoop.mapred.SequenceFileInputFormat output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat properties: - columns _col0,_col1 - columns.types string,string + columns _col0,_col1,_col2 + columns.types string,string,string escape.delim \ serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe @@ -582,8 +582,8 @@ input format: org.apache.hadoop.mapred.SequenceFileInputFormat output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat properties: - columns _col0,_col1 - columns.types string,string + columns _col0,_col1,_col2 + columns.types string,string,string escape.delim \ serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe Index: ql/src/test/results/clientpositive/ppd_vc.q.out =================================================================== --- ql/src/test/results/clientpositive/ppd_vc.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/ppd_vc.q.out (working copy) @@ -679,11 +679,11 @@ name: default.srcpart name: default.srcpart Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_0:a] - /srcpart/ds=2008-04-08/hr=11 [$hdt$_0:$hdt$_1:$hdt$_1:srcpart] - /srcpart/ds=2008-04-08/hr=12 [$hdt$_0:$hdt$_1:$hdt$_1:srcpart] - /srcpart/ds=2008-04-09/hr=11 [$hdt$_0:$hdt$_1:$hdt$_1:srcpart] - /srcpart/ds=2008-04-09/hr=12 [$hdt$_0:$hdt$_1:$hdt$_1:srcpart] + /src [$hdt$_0:a] + /srcpart/ds=2008-04-08/hr=11 [$hdt$_1:$hdt$_1:srcpart] + /srcpart/ds=2008-04-08/hr=12 [$hdt$_1:$hdt$_1:srcpart] + /srcpart/ds=2008-04-09/hr=11 [$hdt$_1:$hdt$_1:srcpart] + /srcpart/ds=2008-04-09/hr=12 [$hdt$_1:$hdt$_1:srcpart] Needs Tagging: true Reduce Operator Tree: Join Operator Index: ql/src/test/results/clientpositive/router_join_ppr.q.out =================================================================== --- ql/src/test/results/clientpositive/router_join_ppr.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/router_join_ppr.q.out (working copy) @@ -772,9 +772,9 @@ name: default.srcpart name: default.srcpart Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_1:b] - /srcpart/ds=2008-04-08/hr=11 [$hdt$_0:$hdt$_0:$hdt$_0:a] - /srcpart/ds=2008-04-08/hr=12 [$hdt$_0:$hdt$_0:$hdt$_0:a] + /src [$hdt$_1:b] + /srcpart/ds=2008-04-08/hr=11 [$hdt$_0:$hdt$_0:a] + /srcpart/ds=2008-04-08/hr=12 [$hdt$_0:$hdt$_0:a] Needs Tagging: true Reduce Operator Tree: Join Operator @@ -1526,9 +1526,9 @@ name: default.srcpart name: default.srcpart Truncated Path -> Alias: - /src [$hdt$_0:$hdt$_1:$hdt$_1:b] - /srcpart/ds=2008-04-08/hr=11 [$hdt$_0:$hdt$_0:$hdt$_0:a] - /srcpart/ds=2008-04-08/hr=12 [$hdt$_0:$hdt$_0:$hdt$_0:a] + /src [$hdt$_1:$hdt$_1:b] + /srcpart/ds=2008-04-08/hr=11 [$hdt$_0:$hdt$_0:a] + /srcpart/ds=2008-04-08/hr=12 [$hdt$_0:$hdt$_0:a] Needs Tagging: true Reduce Operator Tree: Join Operator Index: ql/src/test/results/clientpositive/spark/auto_join7.q.out =================================================================== --- ql/src/test/results/clientpositive/spark/auto_join7.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/spark/auto_join7.q.out (working copy) @@ -47,48 +47,42 @@ INSERT OVERWRITE TABLE dest1 SELECT c.c1, c.c2, c.c3, c.c4, c.c5, c.c6 POSTHOOK: type: QUERY STAGE DEPENDENCIES: - Stage-3 is a root stage - Stage-1 depends on stages: Stage-3 + Stage-1 is a root stage Stage-0 depends on stages: Stage-1 Stage-2 depends on stages: Stage-0 STAGE PLANS: - Stage: Stage-3 + Stage: Stage-1 Spark + Edges: + Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 1), Map 3 (PARTITION-LEVEL SORT, 1), Map 4 (PARTITION-LEVEL SORT, 1) #### A masked pattern was here #### Vertices: - Map 4 + Map 1 Map Operator Tree: TableScan alias: src1 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: ((UDFToDouble(key) > 20.0) and (UDFToDouble(key) < 25.0)) (type: boolean) + predicate: ((UDFToDouble(key) > 10.0) and (UDFToDouble(key) < 20.0)) (type: boolean) Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: key (type: string), value (type: string) outputColumnNames: _col0, _col1 Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE - Spark HashTable Sink Operator - keys: - 0 _col0 (type: string) - 1 _col0 (type: string) - Local Work: - Map Reduce Local Work - - Stage: Stage-1 - Spark - Edges: - Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 1), Map 3 (PARTITION-LEVEL SORT, 1) -#### A masked pattern was here #### - Vertices: - Map 1 + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: string) + Map 3 Map Operator Tree: TableScan alias: src1 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: ((UDFToDouble(key) > 10.0) and (UDFToDouble(key) < 20.0)) (type: boolean) + predicate: ((UDFToDouble(key) > 15.0) and (UDFToDouble(key) < 25.0)) (type: boolean) Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: key (type: string), value (type: string) @@ -100,13 +94,13 @@ Map-reduce partition columns: _col0 (type: string) Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE value expressions: _col1 (type: string) - Map 3 + Map 4 Map Operator Tree: TableScan alias: src1 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: ((UDFToDouble(key) > 15.0) and (UDFToDouble(key) < 25.0)) (type: boolean) + predicate: ((UDFToDouble(key) > 20.0) and (UDFToDouble(key) < 25.0)) (type: boolean) Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: key (type: string), value (type: string) @@ -119,39 +113,29 @@ Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE value expressions: _col1 (type: string) Reducer 2 - Local Work: - Map Reduce Local Work Reduce Operator Tree: Join Operator condition map: Outer Join 0 to 1 + Left Outer Join0 to 2 keys: 0 _col0 (type: string) 1 _col0 (type: string) - outputColumnNames: _col0, _col1, _col2, _col3 - Statistics: Num rows: 60 Data size: 642 Basic stats: COMPLETE Column stats: NONE - Map Join Operator - condition map: - Left Outer Join0 to 1 - keys: - 0 _col0 (type: string) - 1 _col0 (type: string) + 2 _col0 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 + Statistics: Num rows: 121 Data size: 1284 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: UDFToInteger(_col0) (type: int), _col1 (type: string), UDFToInteger(_col2) (type: int), _col3 (type: string), UDFToInteger(_col4) (type: int), _col5 (type: string) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 - input vertices: - 1 Map 4 - Statistics: Num rows: 66 Data size: 706 Basic stats: COMPLETE Column stats: NONE - Select Operator - expressions: UDFToInteger(_col0) (type: int), _col1 (type: string), UDFToInteger(_col2) (type: int), _col3 (type: string), UDFToInteger(_col4) (type: int), _col5 (type: string) - outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 - Statistics: Num rows: 66 Data size: 706 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false - Statistics: Num rows: 66 Data size: 706 Basic stats: COMPLETE Column stats: NONE - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe - name: default.dest1 + Statistics: Num rows: 121 Data size: 1284 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 121 Data size: 1284 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + name: default.dest1 Stage: Stage-0 Move Operator @@ -209,7 +193,7 @@ POSTHOOK: Input: default@src POSTHOOK: Output: default@dest1 POSTHOOK: Lineage: dest1.c1 EXPRESSION [(src)src1.FieldSchema(name:key, type:string, comment:default), ] -POSTHOOK: Lineage: dest1.c2 EXPRESSION [(src)src1.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: dest1.c2 SIMPLE [(src)src1.FieldSchema(name:value, type:string, comment:default), ] POSTHOOK: Lineage: dest1.c3 EXPRESSION [(src)src1.FieldSchema(name:key, type:string, comment:default), ] POSTHOOK: Lineage: dest1.c4 SIMPLE [(src)src1.FieldSchema(name:value, type:string, comment:default), ] POSTHOOK: Lineage: dest1.c5 EXPRESSION [(src)src1.FieldSchema(name:key, type:string, comment:default), ] Index: ql/src/test/results/clientpositive/spark/groupby_cube1.q.out =================================================================== --- ql/src/test/results/clientpositive/spark/groupby_cube1.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/spark/groupby_cube1.q.out (working copy) @@ -109,6 +109,96 @@ NULL 28 1 NULL NULL 6 PREHOOK: query: EXPLAIN +SELECT key, val, GROUPING__ID, count(1) FROM T1 GROUP BY key, val with cube +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT key, val, GROUPING__ID, count(1) FROM T1 GROUP BY key, val with cube +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Spark + Edges: + Reducer 2 <- Map 1 (GROUP, 3) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: t1 + Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE + Select Operator + expressions: key (type: string), val (type: string) + outputColumnNames: key, val + Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE + Group By Operator + aggregations: count(1) + keys: key (type: string), val (type: string), '0' (type: string) + mode: hash + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string) + sort order: +++ + Map-reduce partition columns: _col0 (type: string), _col1 (type: string), _col2 (type: string) + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + value expressions: _col3 (type: bigint) + Reducer 2 + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: string) + mode: mergepartial + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + Select Operator + expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: bigint) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: SELECT key, val, GROUPING__ID, count(1) FROM T1 GROUP BY key, val with cube +PREHOOK: type: QUERY +PREHOOK: Input: default@t1 +#### A masked pattern was here #### +POSTHOOK: query: SELECT key, val, GROUPING__ID, count(1) FROM T1 GROUP BY key, val with cube +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t1 +#### A masked pattern was here #### +1 11 3 1 +1 NULL 1 1 +2 12 3 1 +2 NULL 1 1 +3 13 3 1 +3 NULL 1 1 +7 17 3 1 +7 NULL 1 1 +8 18 3 1 +8 28 3 1 +8 NULL 1 2 +NULL 11 2 1 +NULL 12 2 1 +NULL 13 2 1 +NULL 17 2 1 +NULL 18 2 1 +NULL 28 2 1 +NULL NULL 0 6 +PREHOOK: query: EXPLAIN SELECT key, count(distinct val) FROM T1 GROUP BY key with cube PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN Index: ql/src/test/results/clientpositive/spark/join7.q.out =================================================================== --- ql/src/test/results/clientpositive/spark/join7.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/spark/join7.q.out (working copy) @@ -55,8 +55,7 @@ Stage: Stage-1 Spark Edges: - Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 1), Map 4 (PARTITION-LEVEL SORT, 1) - Reducer 3 <- Map 5 (PARTITION-LEVEL SORT, 1), Reducer 2 (PARTITION-LEVEL SORT, 1) + Reducer 2 <- Map 1 (PARTITION-LEVEL SORT, 1), Map 3 (PARTITION-LEVEL SORT, 1), Map 4 (PARTITION-LEVEL SORT, 1) #### A masked pattern was here #### Vertices: Map 1 @@ -77,7 +76,7 @@ Map-reduce partition columns: _col0 (type: string) Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE value expressions: _col1 (type: string) - Map 4 + Map 3 Map Operator Tree: TableScan alias: src1 @@ -95,7 +94,7 @@ Map-reduce partition columns: _col0 (type: string) Statistics: Num rows: 55 Data size: 584 Basic stats: COMPLETE Column stats: NONE value expressions: _col1 (type: string) - Map 5 + Map 4 Map Operator Tree: TableScan alias: src1 @@ -118,34 +117,20 @@ Join Operator condition map: Outer Join 0 to 1 + Left Outer Join0 to 2 keys: 0 _col0 (type: string) 1 _col0 (type: string) - outputColumnNames: _col0, _col1, _col2, _col3 - Statistics: Num rows: 60 Data size: 642 Basic stats: COMPLETE Column stats: NONE - Reduce Output Operator - key expressions: _col0 (type: string) - sort order: + - Map-reduce partition columns: _col0 (type: string) - Statistics: Num rows: 60 Data size: 642 Basic stats: COMPLETE Column stats: NONE - value expressions: _col1 (type: string), _col2 (type: string), _col3 (type: string) - Reducer 3 - Reduce Operator Tree: - Join Operator - condition map: - Left Outer Join0 to 1 - keys: - 0 _col0 (type: string) - 1 _col0 (type: string) + 2 _col0 (type: string) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 - Statistics: Num rows: 66 Data size: 706 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 121 Data size: 1284 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: UDFToInteger(_col0) (type: int), _col1 (type: string), UDFToInteger(_col2) (type: int), _col3 (type: string), UDFToInteger(_col4) (type: int), _col5 (type: string) outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 - Statistics: Num rows: 66 Data size: 706 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 121 Data size: 1284 Basic stats: COMPLETE Column stats: NONE File Output Operator compressed: false - Statistics: Num rows: 66 Data size: 706 Basic stats: COMPLETE Column stats: NONE + Statistics: Num rows: 121 Data size: 1284 Basic stats: COMPLETE Column stats: NONE table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat @@ -208,7 +193,7 @@ POSTHOOK: Input: default@src POSTHOOK: Output: default@dest1 POSTHOOK: Lineage: dest1.c1 EXPRESSION [(src)src1.FieldSchema(name:key, type:string, comment:default), ] -POSTHOOK: Lineage: dest1.c2 EXPRESSION [(src)src1.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: dest1.c2 SIMPLE [(src)src1.FieldSchema(name:value, type:string, comment:default), ] POSTHOOK: Lineage: dest1.c3 EXPRESSION [(src)src1.FieldSchema(name:key, type:string, comment:default), ] POSTHOOK: Lineage: dest1.c4 SIMPLE [(src)src1.FieldSchema(name:value, type:string, comment:default), ] POSTHOOK: Lineage: dest1.c5 EXPRESSION [(src)src1.FieldSchema(name:key, type:string, comment:default), ] @@ -221,9 +206,6 @@ POSTHOOK: type: QUERY POSTHOOK: Input: default@dest1 #### A masked pattern was here #### -NULL NULL 20 val_20 NULL NULL -NULL NULL 24 val_24 NULL NULL -NULL NULL 24 val_24 NULL NULL 11 val_11 NULL NULL NULL NULL 12 val_12 NULL NULL NULL NULL 12 val_12 NULL NULL NULL NULL @@ -235,3 +217,6 @@ 18 val_18 18 val_18 NULL NULL 18 val_18 18 val_18 NULL NULL 19 val_19 19 val_19 NULL NULL +NULL NULL 20 val_20 NULL NULL +NULL NULL 24 val_24 NULL NULL +NULL NULL 24 val_24 NULL NULL Index: ql/src/test/results/clientpositive/subquery_views.q.out =================================================================== --- ql/src/test/results/clientpositive/subquery_views.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/subquery_views.q.out (working copy) @@ -70,7 +70,7 @@ POSTHOOK: Output: database:default POSTHOOK: Output: default@cv2 Warning: Shuffle Join JOIN[21][tables = [$hdt$_0, $hdt$_1]] in Stage 'Stage-1:MAPRED' is a cross product -Warning: Shuffle Join JOIN[51][tables = [$hdt$_1, $hdt$_2]] in Stage 'Stage-6:MAPRED' is a cross product +Warning: Shuffle Join JOIN[50][tables = [$hdt$_1, $hdt$_2]] in Stage 'Stage-6:MAPRED' is a cross product PREHOOK: query: explain select * from cv2 where cv2.key in (select key from cv2 c where c.key < '11') @@ -383,7 +383,7 @@ ListSink Warning: Shuffle Join JOIN[21][tables = [$hdt$_0, $hdt$_1]] in Stage 'Stage-1:MAPRED' is a cross product -Warning: Shuffle Join JOIN[51][tables = [$hdt$_1, $hdt$_2]] in Stage 'Stage-6:MAPRED' is a cross product +Warning: Shuffle Join JOIN[50][tables = [$hdt$_1, $hdt$_2]] in Stage 'Stage-6:MAPRED' is a cross product PREHOOK: query: select * from cv2 where cv2.key in (select key from cv2 c where c.key < '11') PREHOOK: type: QUERY Index: ql/src/test/results/clientpositive/tez/cross_join.q.out =================================================================== --- ql/src/test/results/clientpositive/tez/cross_join.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/tez/cross_join.q.out (working copy) @@ -1,4 +1,4 @@ -Warning: Shuffle Join MERGEJOIN[12][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 2' is a cross product +Warning: Shuffle Join MERGEJOIN[11][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 2' is a cross product PREHOOK: query: -- current explain select src.key from src join src src2 PREHOOK: type: QUERY @@ -67,7 +67,7 @@ Processor Tree: ListSink -Warning: Shuffle Join MERGEJOIN[12][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 2' is a cross product +Warning: Shuffle Join MERGEJOIN[11][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 2' is a cross product PREHOOK: query: -- ansi cross join explain select src.key from src cross join src src2 PREHOOK: type: QUERY Index: ql/src/test/results/clientpositive/tez/cross_product_check_1.q.out =================================================================== --- ql/src/test/results/clientpositive/tez/cross_product_check_1.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/tez/cross_product_check_1.q.out (working copy) @@ -24,7 +24,7 @@ POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@B -Warning: Shuffle Join MERGEJOIN[12][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 2' is a cross product +Warning: Shuffle Join MERGEJOIN[11][tables = [$hdt$_0, $hdt$_1]] in Stage 'Reducer 2' is a cross product PREHOOK: query: explain select * from A join B PREHOOK: type: QUERY POSTHOOK: query: explain select * from A join B Index: ql/src/test/results/clientpositive/tez/cross_product_check_2.q.out =================================================================== --- ql/src/test/results/clientpositive/tez/cross_product_check_2.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/tez/cross_product_check_2.q.out (working copy) @@ -24,7 +24,7 @@ POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@B -Warning: Map Join MAPJOIN[12][bigTable=?] in task 'Map 1' is a cross product +Warning: Map Join MAPJOIN[11][bigTable=?] in task 'Map 1' is a cross product PREHOOK: query: explain select * from A join B PREHOOK: type: QUERY POSTHOOK: query: explain select * from A join B Index: ql/src/test/results/clientpositive/tez/vector_char_mapjoin1.q.out =================================================================== --- ql/src/test/results/clientpositive/tez/vector_char_mapjoin1.q.out (revision 0) +++ ql/src/test/results/clientpositive/tez/vector_char_mapjoin1.q.out (working copy) @@ -0,0 +1,454 @@ +PREHOOK: query: drop table if exists char_join1_vc1 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_vc1 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_vc2 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_vc2 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_str +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_str +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_vc1_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_vc1_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_vc2_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_vc2_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_str_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_str_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: create table char_join1_vc1 ( + c1 int, + c2 char(10) +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_vc1 +POSTHOOK: query: create table char_join1_vc1 ( + c1 int, + c2 char(10) +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_vc1 +PREHOOK: query: create table char_join1_vc2 ( + c1 int, + c2 char(20) +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_vc2 +POSTHOOK: query: create table char_join1_vc2 ( + c1 int, + c2 char(20) +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_vc2 +PREHOOK: query: create table char_join1_str ( + c1 int, + c2 string +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_str +POSTHOOK: query: create table char_join1_str ( + c1 int, + c2 string +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_str +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_vc1 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@char_join1_vc1 +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_vc1 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@char_join1_vc1 +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_vc2 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@char_join1_vc2 +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_vc2 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@char_join1_vc2 +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_str +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@char_join1_str +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_str +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@char_join1_str +PREHOOK: query: create table char_join1_vc1_orc stored as orc as select * from char_join1_vc1 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@char_join1_vc1 +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_vc1_orc +POSTHOOK: query: create table char_join1_vc1_orc stored as orc as select * from char_join1_vc1 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@char_join1_vc1 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_vc1_orc +PREHOOK: query: create table char_join1_vc2_orc stored as orc as select * from char_join1_vc2 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@char_join1_vc2 +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_vc2_orc +POSTHOOK: query: create table char_join1_vc2_orc stored as orc as select * from char_join1_vc2 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@char_join1_vc2 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_vc2_orc +PREHOOK: query: create table char_join1_str_orc stored as orc as select * from char_join1_str +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@char_join1_str +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_str_orc +POSTHOOK: query: create table char_join1_str_orc stored as orc as select * from char_join1_str +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@char_join1_str +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_str_orc +PREHOOK: query: -- Join char with same length char +explain select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join char with same length char +explain select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez + Edges: + Map 1 <- Map 3 (BROADCAST_EDGE) + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 3 Data size: 294 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 c2 (type: char(10)) + 1 c2 (type: char(10)) + outputColumnNames: _col0, _col1, _col5, _col6 + input vertices: + 1 Map 3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: char(10)), _col5 (type: int), _col6 (type: char(10)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: char(10)), _col2 (type: int), _col3 (type: char(10)) + Execution mode: vectorized + Map 3 + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 294 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: c2 (type: char(10)) + sort order: + + Map-reduce partition columns: c2 (type: char(10)) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + value expressions: c1 (type: int) + Execution mode: vectorized + Reducer 2 + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: char(10)), VALUE._col1 (type: int), VALUE._col2 (type: char(10)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Execution mode: vectorized + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@char_join1_vc1_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@char_join1_vc1_orc +#### A masked pattern was here #### +1 abc 2 abc +1 abc 1 abc +2 abc 2 abc +2 abc 1 abc +3 abc 3 abc +PREHOOK: query: -- Join char with different length char +explain select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join char with different length char +explain select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez + Edges: + Map 2 <- Map 1 (BROADCAST_EDGE) + Reducer 3 <- Map 2 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 3 Data size: 294 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: c2 (type: char(10)) + sort order: + + Map-reduce partition columns: c2 (type: char(10)) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + value expressions: c1 (type: int) + Execution mode: vectorized + Map 2 + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 324 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 216 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 c2 (type: char(10)) + 1 c2 (type: char(20)) + outputColumnNames: _col0, _col1, _col5, _col6 + input vertices: + 0 Map 1 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: char(10)), _col5 (type: int), _col6 (type: char(20)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: char(10)), _col2 (type: int), _col3 (type: char(20)) + Execution mode: vectorized + Reducer 3 + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: char(10)), VALUE._col1 (type: int), VALUE._col2 (type: char(20)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Execution mode: vectorized + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@char_join1_vc1_orc +PREHOOK: Input: default@char_join1_vc2_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@char_join1_vc1_orc +POSTHOOK: Input: default@char_join1_vc2_orc +#### A masked pattern was here #### +1 abc 2 abc +1 abc 1 abc +2 abc 2 abc +2 abc 1 abc +3 abc 3 abc +PREHOOK: query: -- Join char with string +explain select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join char with string +explain select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez + Edges: + Map 1 <- Map 3 (BROADCAST_EDGE) + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 3 Data size: 294 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: UDFToString(c2) is not null (type: boolean) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 UDFToString(c2) (type: string) + 1 c2 (type: string) + outputColumnNames: _col0, _col1, _col5, _col6 + input vertices: + 1 Map 3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: char(10)), _col5 (type: int), _col6 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: char(10)), _col2 (type: int), _col3 (type: string) + Map 3 + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: c2 (type: string) + sort order: + + Map-reduce partition columns: c2 (type: string) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + value expressions: c1 (type: int) + Execution mode: vectorized + Reducer 2 + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: char(10)), VALUE._col1 (type: int), VALUE._col2 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Execution mode: vectorized + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@char_join1_str_orc +PREHOOK: Input: default@char_join1_vc1_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@char_join1_str_orc +POSTHOOK: Input: default@char_join1_vc1_orc +#### A masked pattern was here #### +1 abc 1 abc +2 abc 1 abc +3 abc 3 abc +PREHOOK: query: drop table char_join1_vc1 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_vc1 +PREHOOK: Output: default@char_join1_vc1 +POSTHOOK: query: drop table char_join1_vc1 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_vc1 +POSTHOOK: Output: default@char_join1_vc1 +PREHOOK: query: drop table char_join1_vc2 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_vc2 +PREHOOK: Output: default@char_join1_vc2 +POSTHOOK: query: drop table char_join1_vc2 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_vc2 +POSTHOOK: Output: default@char_join1_vc2 +PREHOOK: query: drop table char_join1_str +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_str +PREHOOK: Output: default@char_join1_str +POSTHOOK: query: drop table char_join1_str +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_str +POSTHOOK: Output: default@char_join1_str +PREHOOK: query: drop table char_join1_vc1_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_vc1_orc +PREHOOK: Output: default@char_join1_vc1_orc +POSTHOOK: query: drop table char_join1_vc1_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_vc1_orc +POSTHOOK: Output: default@char_join1_vc1_orc +PREHOOK: query: drop table char_join1_vc2_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_vc2_orc +PREHOOK: Output: default@char_join1_vc2_orc +POSTHOOK: query: drop table char_join1_vc2_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_vc2_orc +POSTHOOK: Output: default@char_join1_vc2_orc +PREHOOK: query: drop table char_join1_str_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_str_orc +PREHOOK: Output: default@char_join1_str_orc +POSTHOOK: query: drop table char_join1_str_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_str_orc +POSTHOOK: Output: default@char_join1_str_orc Index: ql/src/test/results/clientpositive/tez/vector_varchar_mapjoin1.q.out =================================================================== --- ql/src/test/results/clientpositive/tez/vector_varchar_mapjoin1.q.out (revision 0) +++ ql/src/test/results/clientpositive/tez/vector_varchar_mapjoin1.q.out (working copy) @@ -0,0 +1,450 @@ +PREHOOK: query: drop table if exists varchar_join1_vc1 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_vc1 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_vc2 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_vc2 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_str +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_str +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_vc1_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_vc1_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_vc2_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_vc2_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_str_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_str_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: create table varchar_join1_vc1 ( + c1 int, + c2 varchar(10) +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_vc1 +POSTHOOK: query: create table varchar_join1_vc1 ( + c1 int, + c2 varchar(10) +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_vc1 +PREHOOK: query: create table varchar_join1_vc2 ( + c1 int, + c2 varchar(20) +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_vc2 +POSTHOOK: query: create table varchar_join1_vc2 ( + c1 int, + c2 varchar(20) +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_vc2 +PREHOOK: query: create table varchar_join1_str ( + c1 int, + c2 string +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_str +POSTHOOK: query: create table varchar_join1_str ( + c1 int, + c2 string +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_str +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc1 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@varchar_join1_vc1 +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc1 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@varchar_join1_vc1 +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc2 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@varchar_join1_vc2 +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc2 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@varchar_join1_vc2 +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_str +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@varchar_join1_str +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_str +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@varchar_join1_str +PREHOOK: query: create table varchar_join1_vc1_orc stored as orc as select * from varchar_join1_vc1 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@varchar_join1_vc1 +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_vc1_orc +POSTHOOK: query: create table varchar_join1_vc1_orc stored as orc as select * from varchar_join1_vc1 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@varchar_join1_vc1 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_vc1_orc +PREHOOK: query: create table varchar_join1_vc2_orc stored as orc as select * from varchar_join1_vc2 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@varchar_join1_vc2 +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_vc2_orc +POSTHOOK: query: create table varchar_join1_vc2_orc stored as orc as select * from varchar_join1_vc2 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@varchar_join1_vc2 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_vc2_orc +PREHOOK: query: create table varchar_join1_str_orc stored as orc as select * from varchar_join1_str +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@varchar_join1_str +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_str_orc +POSTHOOK: query: create table varchar_join1_str_orc stored as orc as select * from varchar_join1_str +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@varchar_join1_str +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_str_orc +PREHOOK: query: -- Join varchar with same length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join varchar with same length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez + Edges: + Map 1 <- Map 3 (BROADCAST_EDGE) + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 c2 (type: varchar(10)) + 1 c2 (type: varchar(10)) + outputColumnNames: _col0, _col1, _col5, _col6 + input vertices: + 1 Map 3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: varchar(10)), _col5 (type: int), _col6 (type: varchar(10)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: varchar(10)), _col2 (type: int), _col3 (type: varchar(10)) + Execution mode: vectorized + Map 3 + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: c2 (type: varchar(10)) + sort order: + + Map-reduce partition columns: c2 (type: varchar(10)) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + value expressions: c1 (type: int) + Execution mode: vectorized + Reducer 2 + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: varchar(10)), VALUE._col1 (type: int), VALUE._col2 (type: varchar(10)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Execution mode: vectorized + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@varchar_join1_vc1_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@varchar_join1_vc1_orc +#### A masked pattern was here #### +1 abc 1 abc +2 abc 2 abc +3 abc 3 abc +PREHOOK: query: -- Join varchar with different length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join varchar with different length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez + Edges: + Map 1 <- Map 3 (BROADCAST_EDGE) + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 c2 (type: varchar(10)) + 1 c2 (type: varchar(20)) + outputColumnNames: _col0, _col1, _col5, _col6 + input vertices: + 1 Map 3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: varchar(10)), _col5 (type: int), _col6 (type: varchar(20)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: varchar(10)), _col2 (type: int), _col3 (type: varchar(20)) + Execution mode: vectorized + Map 3 + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: c2 (type: varchar(20)) + sort order: + + Map-reduce partition columns: c2 (type: varchar(20)) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + value expressions: c1 (type: int) + Execution mode: vectorized + Reducer 2 + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: varchar(10)), VALUE._col1 (type: int), VALUE._col2 (type: varchar(20)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Execution mode: vectorized + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@varchar_join1_vc1_orc +PREHOOK: Input: default@varchar_join1_vc2_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@varchar_join1_vc1_orc +POSTHOOK: Input: default@varchar_join1_vc2_orc +#### A masked pattern was here #### +1 abc 1 abc +2 abc 2 abc +3 abc 3 abc +PREHOOK: query: -- Join varchar with string +explain select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join varchar with string +explain select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Tez + Edges: + Map 1 <- Map 3 (BROADCAST_EDGE) + Reducer 2 <- Map 1 (SIMPLE_EDGE) +#### A masked pattern was here #### + Vertices: + Map 1 + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: UDFToString(c2) is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 UDFToString(c2) (type: string) + 1 c2 (type: string) + outputColumnNames: _col0, _col1, _col5, _col6 + input vertices: + 1 Map 3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: varchar(10)), _col5 (type: int), _col6 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: varchar(10)), _col2 (type: int), _col3 (type: string) + Map 3 + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: c2 (type: string) + sort order: + + Map-reduce partition columns: c2 (type: string) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + value expressions: c1 (type: int) + Execution mode: vectorized + Reducer 2 + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: varchar(10)), VALUE._col1 (type: int), VALUE._col2 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Execution mode: vectorized + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@varchar_join1_str_orc +PREHOOK: Input: default@varchar_join1_vc1_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@varchar_join1_str_orc +POSTHOOK: Input: default@varchar_join1_vc1_orc +#### A masked pattern was here #### +1 abc 1 abc +2 abc 2 abc +3 abc 3 abc +PREHOOK: query: drop table varchar_join1_vc1 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_vc1 +PREHOOK: Output: default@varchar_join1_vc1 +POSTHOOK: query: drop table varchar_join1_vc1 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_vc1 +POSTHOOK: Output: default@varchar_join1_vc1 +PREHOOK: query: drop table varchar_join1_vc2 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_vc2 +PREHOOK: Output: default@varchar_join1_vc2 +POSTHOOK: query: drop table varchar_join1_vc2 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_vc2 +POSTHOOK: Output: default@varchar_join1_vc2 +PREHOOK: query: drop table varchar_join1_str +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_str +PREHOOK: Output: default@varchar_join1_str +POSTHOOK: query: drop table varchar_join1_str +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_str +POSTHOOK: Output: default@varchar_join1_str +PREHOOK: query: drop table varchar_join1_vc1_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_vc1_orc +PREHOOK: Output: default@varchar_join1_vc1_orc +POSTHOOK: query: drop table varchar_join1_vc1_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_vc1_orc +POSTHOOK: Output: default@varchar_join1_vc1_orc +PREHOOK: query: drop table varchar_join1_vc2_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_vc2_orc +PREHOOK: Output: default@varchar_join1_vc2_orc +POSTHOOK: query: drop table varchar_join1_vc2_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_vc2_orc +POSTHOOK: Output: default@varchar_join1_vc2_orc +PREHOOK: query: drop table varchar_join1_str_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_str_orc +PREHOOK: Output: default@varchar_join1_str_orc +POSTHOOK: query: drop table varchar_join1_str_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_str_orc +POSTHOOK: Output: default@varchar_join1_str_orc Index: ql/src/test/results/clientpositive/union_remove_6_subq.q.out =================================================================== --- ql/src/test/results/clientpositive/union_remove_6_subq.q.out (revision 0) +++ ql/src/test/results/clientpositive/union_remove_6_subq.q.out (working copy) @@ -0,0 +1,1242 @@ +PREHOOK: query: -- This is to test the union->selectstar->filesink optimization +-- Union of 2 subqueries is performed (all of which are mapred queries) +-- followed by select star and a file sink in 2 output tables. +-- The optimiaztion does not take affect since it is a multi-table insert. +-- It does not matter, whether the output is merged or not. In this case, +-- merging is turned off + +create table inputTbl1(key string, val string) stored as textfile +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@inputTbl1 +POSTHOOK: query: -- This is to test the union->selectstar->filesink optimization +-- Union of 2 subqueries is performed (all of which are mapred queries) +-- followed by select star and a file sink in 2 output tables. +-- The optimiaztion does not take affect since it is a multi-table insert. +-- It does not matter, whether the output is merged or not. In this case, +-- merging is turned off + +create table inputTbl1(key string, val string) stored as textfile +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@inputTbl1 +PREHOOK: query: create table outputTbl1(key string, values bigint) stored as textfile +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@outputTbl1 +POSTHOOK: query: create table outputTbl1(key string, values bigint) stored as textfile +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@outputTbl1 +PREHOOK: query: create table outputTbl2(key string, values bigint) stored as textfile +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@outputTbl2 +POSTHOOK: query: create table outputTbl2(key string, values bigint) stored as textfile +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@outputTbl2 +PREHOOK: query: load data local inpath '../../data/files/T1.txt' into table inputTbl1 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@inputtbl1 +POSTHOOK: query: load data local inpath '../../data/files/T1.txt' into table inputTbl1 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@inputtbl1 +PREHOOK: query: explain +FROM ( + select * from( + SELECT key, count(1) as values from inputTbl1 group by key + UNION ALL + SELECT key, count(1) as values from inputTbl1 group by key + )subq +) a +insert overwrite table outputTbl1 select * +insert overwrite table outputTbl2 select * +PREHOOK: type: QUERY +POSTHOOK: query: explain +FROM ( + select * from( + SELECT key, count(1) as values from inputTbl1 group by key + UNION ALL + SELECT key, count(1) as values from inputTbl1 group by key + )subq +) a +insert overwrite table outputTbl1 select * +insert overwrite table outputTbl2 select * +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-2 is a root stage + Stage-3 depends on stages: Stage-2, Stage-4 + Stage-0 depends on stages: Stage-3 + Stage-1 depends on stages: Stage-3 + Stage-4 is a root stage + +STAGE PLANS: + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + alias: inputtbl1 + Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE + Select Operator + expressions: key (type: string) + outputColumnNames: key + Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE + Group By Operator + aggregations: count(1) + keys: key (type: string) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + value expressions: _col1 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + keys: KEY._col0 (type: string) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-3 + Map Reduce + Map Operator Tree: + TableScan + Union + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + name: default.outputtbl1 + File Output Operator + compressed: false + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + name: default.outputtbl2 + TableScan + Union + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + name: default.outputtbl1 + File Output Operator + compressed: false + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + name: default.outputtbl2 + + Stage: Stage-0 + Move Operator + tables: + replace: true + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + name: default.outputtbl1 + + Stage: Stage-1 + Move Operator + tables: + replace: true + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + name: default.outputtbl2 + + Stage: Stage-4 + Map Reduce + Map Operator Tree: + TableScan + alias: inputtbl1 + Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE + Select Operator + expressions: key (type: string) + outputColumnNames: key + Statistics: Num rows: 0 Data size: 30 Basic stats: PARTIAL Column stats: NONE + Group By Operator + aggregations: count(1) + keys: key (type: string) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + value expressions: _col1 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + keys: KEY._col0 (type: string) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + +PREHOOK: query: FROM ( + select * from( + SELECT key, count(1) as values from inputTbl1 group by key + UNION ALL + SELECT key, count(1) as values from inputTbl1 group by key + )subq +) a +insert overwrite table outputTbl1 select * +insert overwrite table outputTbl2 select * +PREHOOK: type: QUERY +PREHOOK: Input: default@inputtbl1 +PREHOOK: Output: default@outputtbl1 +PREHOOK: Output: default@outputtbl2 +POSTHOOK: query: FROM ( + select * from( + SELECT key, count(1) as values from inputTbl1 group by key + UNION ALL + SELECT key, count(1) as values from inputTbl1 group by key + )subq +) a +insert overwrite table outputTbl1 select * +insert overwrite table outputTbl2 select * +POSTHOOK: type: QUERY +POSTHOOK: Input: default@inputtbl1 +POSTHOOK: Output: default@outputtbl1 +POSTHOOK: Output: default@outputtbl2 +POSTHOOK: Lineage: outputtbl1.key EXPRESSION [(inputtbl1)inputtbl1.FieldSchema(name:key, type:string, comment:null), (inputtbl1)inputtbl1.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: outputtbl1.values EXPRESSION [(inputtbl1)inputtbl1.null, (inputtbl1)inputtbl1.null, ] +POSTHOOK: Lineage: outputtbl2.key EXPRESSION [(inputtbl1)inputtbl1.FieldSchema(name:key, type:string, comment:null), (inputtbl1)inputtbl1.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: outputtbl2.values EXPRESSION [(inputtbl1)inputtbl1.null, (inputtbl1)inputtbl1.null, ] +PREHOOK: query: select * from outputTbl1 order by key, values +PREHOOK: type: QUERY +PREHOOK: Input: default@outputtbl1 +#### A masked pattern was here #### +POSTHOOK: query: select * from outputTbl1 order by key, values +POSTHOOK: type: QUERY +POSTHOOK: Input: default@outputtbl1 +#### A masked pattern was here #### +1 1 +1 1 +2 1 +2 1 +3 1 +3 1 +7 1 +7 1 +8 2 +8 2 +PREHOOK: query: select * from outputTbl2 order by key, values +PREHOOK: type: QUERY +PREHOOK: Input: default@outputtbl2 +#### A masked pattern was here #### +POSTHOOK: query: select * from outputTbl2 order by key, values +POSTHOOK: type: QUERY +POSTHOOK: Input: default@outputtbl2 +#### A masked pattern was here #### +1 1 +1 1 +2 1 +2 1 +3 1 +3 1 +7 1 +7 1 +8 2 +8 2 +PREHOOK: query: -- The following queries guarantee the correctness. +explain +select avg(c) from( + SELECT count(1)-200 as c from src + UNION ALL + SELECT count(1) as c from src +)subq +PREHOOK: type: QUERY +POSTHOOK: query: -- The following queries guarantee the correctness. +explain +select avg(c) from( + SELECT count(1)-200 as c from src + UNION ALL + SELECT count(1) as c from src +)subq +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-2 depends on stages: Stage-1, Stage-3 + Stage-3 is a root stage + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: src + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: COMPLETE + Group By Operator + aggregations: count(1) + mode: hash + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + sort order: + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE + value expressions: _col0 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + mode: mergepartial + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: (_col0 - 200) (type: bigint) + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + Union + Statistics: Num rows: 2 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE + Group By Operator + aggregations: avg(_col0) + mode: hash + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE + Reduce Output Operator + sort order: + Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE + value expressions: _col0 (type: struct) + TableScan + Union + Statistics: Num rows: 2 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE + Group By Operator + aggregations: avg(_col0) + mode: hash + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE + Reduce Output Operator + sort order: + Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: COMPLETE + value expressions: _col0 (type: struct) + Reduce Operator Tree: + Group By Operator + aggregations: avg(VALUE._col0) + mode: mergepartial + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: _col0 (type: double) + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-3 + Map Reduce + Map Operator Tree: + TableScan + alias: src + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: COMPLETE + Group By Operator + aggregations: count(1) + mode: hash + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE + Reduce Output Operator + sort order: + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE + value expressions: _col0 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + mode: mergepartial + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select avg(c) from( + SELECT count(1)-200 as c from src + UNION ALL + SELECT count(1) as c from src +)subq +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: select avg(c) from( + SELECT count(1)-200 as c from src + UNION ALL + SELECT count(1) as c from src +)subq +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +400.0 +PREHOOK: query: explain +select key, avg(c) over w from( + SELECT key, count(1)*2 as c from src group by key + UNION ALL + SELECT key, count(1) as c from src group by key +)subq group by key, c +WINDOW w AS (PARTITION BY key ORDER BY c ROWS UNBOUNDED PRECEDING) +PREHOOK: type: QUERY +POSTHOOK: query: explain +select key, avg(c) over w from( + SELECT key, count(1)*2 as c from src group by key + UNION ALL + SELECT key, count(1) as c from src group by key +)subq group by key, c +WINDOW w AS (PARTITION BY key ORDER BY c ROWS UNBOUNDED PRECEDING) +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-2 depends on stages: Stage-1, Stage-4 + Stage-3 depends on stages: Stage-2 + Stage-4 is a root stage + Stage-0 depends on stages: Stage-3 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: src + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: key (type: string) + outputColumnNames: _col0 + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count(1) + keys: _col0 (type: string) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + keys: KEY._col0 (type: string) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: string), (_col1 * 2) (type: bigint) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + Union + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Group By Operator + keys: _col0 (type: string), _col1 (type: bigint) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string), _col1 (type: bigint) + sort order: ++ + Map-reduce partition columns: _col0 (type: string), _col1 (type: bigint) + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + TableScan + Union + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Group By Operator + keys: _col0 (type: string), _col1 (type: bigint) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string), _col1 (type: bigint) + sort order: ++ + Map-reduce partition columns: _col0 (type: string), _col1 (type: bigint) + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Reduce Operator Tree: + Group By Operator + keys: KEY._col0 (type: string), KEY._col1 (type: bigint) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-3 + Map Reduce + Map Operator Tree: + TableScan + Reduce Output Operator + key expressions: _col0 (type: string), _col1 (type: bigint) + sort order: ++ + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + value expressions: _col0 (type: string), _col1 (type: bigint) + Reduce Operator Tree: + Extract + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + PTF Operator + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: string), _wcol0 (type: double) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-4 + Map Reduce + Map Operator Tree: + TableScan + alias: src + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: key (type: string) + outputColumnNames: _col0 + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: count(1) + keys: _col0 (type: string) + mode: hash + outputColumnNames: _col0, _col1 + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: string) + sort order: + + Map-reduce partition columns: _col0 (type: string) + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: count(VALUE._col0) + keys: KEY._col0 (type: string) + mode: mergepartial + outputColumnNames: _col0, _col1 + Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select key, avg(c) over w from( + SELECT key, count(1)*2 as c from src group by key + UNION ALL + SELECT key, count(1) as c from src group by key +)subq group by key, c +WINDOW w AS (PARTITION BY key ORDER BY c ROWS UNBOUNDED PRECEDING) +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: select key, avg(c) over w from( + SELECT key, count(1)*2 as c from src group by key + UNION ALL + SELECT key, count(1) as c from src group by key +)subq group by key, c +WINDOW w AS (PARTITION BY key ORDER BY c ROWS UNBOUNDED PRECEDING) +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +0 3.0 +0 4.5 +10 1.0 +10 1.5 +100 2.0 +100 3.0 +103 2.0 +103 3.0 +104 2.0 +104 3.0 +105 1.0 +105 1.5 +11 1.0 +11 1.5 +111 1.0 +111 1.5 +113 2.0 +113 3.0 +114 1.0 +114 1.5 +116 1.0 +116 1.5 +118 2.0 +118 3.0 +119 3.0 +119 4.5 +12 2.0 +12 3.0 +120 2.0 +120 3.0 +125 2.0 +125 3.0 +126 1.0 +126 1.5 +128 3.0 +128 4.5 +129 2.0 +129 3.0 +131 1.0 +131 1.5 +133 1.0 +133 1.5 +134 2.0 +134 3.0 +136 1.0 +136 1.5 +137 2.0 +137 3.0 +138 4.0 +138 6.0 +143 1.0 +143 1.5 +145 1.0 +145 1.5 +146 2.0 +146 3.0 +149 2.0 +149 3.0 +15 2.0 +15 3.0 +150 1.0 +150 1.5 +152 2.0 +152 3.0 +153 1.0 +153 1.5 +155 1.0 +155 1.5 +156 1.0 +156 1.5 +157 1.0 +157 1.5 +158 1.0 +158 1.5 +160 1.0 +160 1.5 +162 1.0 +162 1.5 +163 1.0 +163 1.5 +164 2.0 +164 3.0 +165 2.0 +165 3.0 +166 1.0 +166 1.5 +167 3.0 +167 4.5 +168 1.0 +168 1.5 +169 4.0 +169 6.0 +17 1.0 +17 1.5 +170 1.0 +170 1.5 +172 2.0 +172 3.0 +174 2.0 +174 3.0 +175 2.0 +175 3.0 +176 2.0 +176 3.0 +177 1.0 +177 1.5 +178 1.0 +178 1.5 +179 2.0 +179 3.0 +18 2.0 +18 3.0 +180 1.0 +180 1.5 +181 1.0 +181 1.5 +183 1.0 +183 1.5 +186 1.0 +186 1.5 +187 3.0 +187 4.5 +189 1.0 +189 1.5 +19 1.0 +19 1.5 +190 1.0 +190 1.5 +191 2.0 +191 3.0 +192 1.0 +192 1.5 +193 3.0 +193 4.5 +194 1.0 +194 1.5 +195 2.0 +195 3.0 +196 1.0 +196 1.5 +197 2.0 +197 3.0 +199 3.0 +199 4.5 +2 1.0 +2 1.5 +20 1.0 +20 1.5 +200 2.0 +200 3.0 +201 1.0 +201 1.5 +202 1.0 +202 1.5 +203 2.0 +203 3.0 +205 2.0 +205 3.0 +207 2.0 +207 3.0 +208 3.0 +208 4.5 +209 2.0 +209 3.0 +213 2.0 +213 3.0 +214 1.0 +214 1.5 +216 2.0 +216 3.0 +217 2.0 +217 3.0 +218 1.0 +218 1.5 +219 2.0 +219 3.0 +221 2.0 +221 3.0 +222 1.0 +222 1.5 +223 2.0 +223 3.0 +224 2.0 +224 3.0 +226 1.0 +226 1.5 +228 1.0 +228 1.5 +229 2.0 +229 3.0 +230 5.0 +230 7.5 +233 2.0 +233 3.0 +235 1.0 +235 1.5 +237 2.0 +237 3.0 +238 2.0 +238 3.0 +239 2.0 +239 3.0 +24 2.0 +24 3.0 +241 1.0 +241 1.5 +242 2.0 +242 3.0 +244 1.0 +244 1.5 +247 1.0 +247 1.5 +248 1.0 +248 1.5 +249 1.0 +249 1.5 +252 1.0 +252 1.5 +255 2.0 +255 3.0 +256 2.0 +256 3.0 +257 1.0 +257 1.5 +258 1.0 +258 1.5 +26 2.0 +26 3.0 +260 1.0 +260 1.5 +262 1.0 +262 1.5 +263 1.0 +263 1.5 +265 2.0 +265 3.0 +266 1.0 +266 1.5 +27 1.0 +27 1.5 +272 2.0 +272 3.0 +273 3.0 +273 4.5 +274 1.0 +274 1.5 +275 1.0 +275 1.5 +277 4.0 +277 6.0 +278 2.0 +278 3.0 +28 1.0 +28 1.5 +280 2.0 +280 3.0 +281 2.0 +281 3.0 +282 2.0 +282 3.0 +283 1.0 +283 1.5 +284 1.0 +284 1.5 +285 1.0 +285 1.5 +286 1.0 +286 1.5 +287 1.0 +287 1.5 +288 2.0 +288 3.0 +289 1.0 +289 1.5 +291 1.0 +291 1.5 +292 1.0 +292 1.5 +296 1.0 +296 1.5 +298 3.0 +298 4.5 +30 1.0 +30 1.5 +302 1.0 +302 1.5 +305 1.0 +305 1.5 +306 1.0 +306 1.5 +307 2.0 +307 3.0 +308 1.0 +308 1.5 +309 2.0 +309 3.0 +310 1.0 +310 1.5 +311 3.0 +311 4.5 +315 1.0 +315 1.5 +316 3.0 +316 4.5 +317 2.0 +317 3.0 +318 3.0 +318 4.5 +321 2.0 +321 3.0 +322 2.0 +322 3.0 +323 1.0 +323 1.5 +325 2.0 +325 3.0 +327 3.0 +327 4.5 +33 1.0 +33 1.5 +331 2.0 +331 3.0 +332 1.0 +332 1.5 +333 2.0 +333 3.0 +335 1.0 +335 1.5 +336 1.0 +336 1.5 +338 1.0 +338 1.5 +339 1.0 +339 1.5 +34 1.0 +34 1.5 +341 1.0 +341 1.5 +342 2.0 +342 3.0 +344 2.0 +344 3.0 +345 1.0 +345 1.5 +348 5.0 +348 7.5 +35 3.0 +35 4.5 +351 1.0 +351 1.5 +353 2.0 +353 3.0 +356 1.0 +356 1.5 +360 1.0 +360 1.5 +362 1.0 +362 1.5 +364 1.0 +364 1.5 +365 1.0 +365 1.5 +366 1.0 +366 1.5 +367 2.0 +367 3.0 +368 1.0 +368 1.5 +369 3.0 +369 4.5 +37 2.0 +37 3.0 +373 1.0 +373 1.5 +374 1.0 +374 1.5 +375 1.0 +375 1.5 +377 1.0 +377 1.5 +378 1.0 +378 1.5 +379 1.0 +379 1.5 +382 2.0 +382 3.0 +384 3.0 +384 4.5 +386 1.0 +386 1.5 +389 1.0 +389 1.5 +392 1.0 +392 1.5 +393 1.0 +393 1.5 +394 1.0 +394 1.5 +395 2.0 +395 3.0 +396 3.0 +396 4.5 +397 2.0 +397 3.0 +399 2.0 +399 3.0 +4 1.0 +4 1.5 +400 1.0 +400 1.5 +401 5.0 +401 7.5 +402 1.0 +402 1.5 +403 3.0 +403 4.5 +404 2.0 +404 3.0 +406 4.0 +406 6.0 +407 1.0 +407 1.5 +409 3.0 +409 4.5 +41 1.0 +41 1.5 +411 1.0 +411 1.5 +413 2.0 +413 3.0 +414 2.0 +414 3.0 +417 3.0 +417 4.5 +418 1.0 +418 1.5 +419 1.0 +419 1.5 +42 2.0 +42 3.0 +421 1.0 +421 1.5 +424 2.0 +424 3.0 +427 1.0 +427 1.5 +429 2.0 +429 3.0 +43 1.0 +43 1.5 +430 3.0 +430 4.5 +431 3.0 +431 4.5 +432 1.0 +432 1.5 +435 1.0 +435 1.5 +436 1.0 +436 1.5 +437 1.0 +437 1.5 +438 3.0 +438 4.5 +439 2.0 +439 3.0 +44 1.0 +44 1.5 +443 1.0 +443 1.5 +444 1.0 +444 1.5 +446 1.0 +446 1.5 +448 1.0 +448 1.5 +449 1.0 +449 1.5 +452 1.0 +452 1.5 +453 1.0 +453 1.5 +454 3.0 +454 4.5 +455 1.0 +455 1.5 +457 1.0 +457 1.5 +458 2.0 +458 3.0 +459 2.0 +459 3.0 +460 1.0 +460 1.5 +462 2.0 +462 3.0 +463 2.0 +463 3.0 +466 3.0 +466 4.5 +467 1.0 +467 1.5 +468 4.0 +468 6.0 +469 5.0 +469 7.5 +47 1.0 +47 1.5 +470 1.0 +470 1.5 +472 1.0 +472 1.5 +475 1.0 +475 1.5 +477 1.0 +477 1.5 +478 2.0 +478 3.0 +479 1.0 +479 1.5 +480 3.0 +480 4.5 +481 1.0 +481 1.5 +482 1.0 +482 1.5 +483 1.0 +483 1.5 +484 1.0 +484 1.5 +485 1.0 +485 1.5 +487 1.0 +487 1.5 +489 4.0 +489 6.0 +490 1.0 +490 1.5 +491 1.0 +491 1.5 +492 2.0 +492 3.0 +493 1.0 +493 1.5 +494 1.0 +494 1.5 +495 1.0 +495 1.5 +496 1.0 +496 1.5 +497 1.0 +497 1.5 +498 3.0 +498 4.5 +5 3.0 +5 4.5 +51 2.0 +51 3.0 +53 1.0 +53 1.5 +54 1.0 +54 1.5 +57 1.0 +57 1.5 +58 2.0 +58 3.0 +64 1.0 +64 1.5 +65 1.0 +65 1.5 +66 1.0 +66 1.5 +67 2.0 +67 3.0 +69 1.0 +69 1.5 +70 3.0 +70 4.5 +72 2.0 +72 3.0 +74 1.0 +74 1.5 +76 2.0 +76 3.0 +77 1.0 +77 1.5 +78 1.0 +78 1.5 +8 1.0 +8 1.5 +80 1.0 +80 1.5 +82 1.0 +82 1.5 +83 2.0 +83 3.0 +84 2.0 +84 3.0 +85 1.0 +85 1.5 +86 1.0 +86 1.5 +87 1.0 +87 1.5 +9 1.0 +9 1.5 +90 3.0 +90 4.5 +92 1.0 +92 1.5 +95 2.0 +95 3.0 +96 1.0 +96 1.5 +97 2.0 +97 3.0 +98 2.0 +98 3.0 Index: ql/src/test/results/clientpositive/vector_char_mapjoin1.q.out =================================================================== --- ql/src/test/results/clientpositive/vector_char_mapjoin1.q.out (revision 0) +++ ql/src/test/results/clientpositive/vector_char_mapjoin1.q.out (working copy) @@ -0,0 +1,445 @@ +PREHOOK: query: drop table if exists char_join1_vc1 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_vc1 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_vc2 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_vc2 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_str +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_str +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_vc1_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_vc1_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_vc2_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_vc2_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists char_join1_str_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists char_join1_str_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: create table char_join1_vc1 ( + c1 int, + c2 char(10) +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_vc1 +POSTHOOK: query: create table char_join1_vc1 ( + c1 int, + c2 char(10) +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_vc1 +PREHOOK: query: create table char_join1_vc2 ( + c1 int, + c2 char(20) +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_vc2 +POSTHOOK: query: create table char_join1_vc2 ( + c1 int, + c2 char(20) +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_vc2 +PREHOOK: query: create table char_join1_str ( + c1 int, + c2 string +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_str +POSTHOOK: query: create table char_join1_str ( + c1 int, + c2 string +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_str +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_vc1 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@char_join1_vc1 +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_vc1 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@char_join1_vc1 +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_vc2 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@char_join1_vc2 +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_vc2 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@char_join1_vc2 +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_str +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@char_join1_str +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table char_join1_str +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@char_join1_str +PREHOOK: query: create table char_join1_vc1_orc stored as orc as select * from char_join1_vc1 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@char_join1_vc1 +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_vc1_orc +POSTHOOK: query: create table char_join1_vc1_orc stored as orc as select * from char_join1_vc1 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@char_join1_vc1 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_vc1_orc +PREHOOK: query: create table char_join1_vc2_orc stored as orc as select * from char_join1_vc2 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@char_join1_vc2 +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_vc2_orc +POSTHOOK: query: create table char_join1_vc2_orc stored as orc as select * from char_join1_vc2 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@char_join1_vc2 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_vc2_orc +PREHOOK: query: create table char_join1_str_orc stored as orc as select * from char_join1_str +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@char_join1_str +PREHOOK: Output: database:default +PREHOOK: Output: default@char_join1_str_orc +POSTHOOK: query: create table char_join1_str_orc stored as orc as select * from char_join1_str +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@char_join1_str +POSTHOOK: Output: database:default +POSTHOOK: Output: default@char_join1_str_orc +PREHOOK: query: -- Join char with same length char +explain select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join char with same length char +explain select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-5 is a root stage + Stage-2 depends on stages: Stage-5 + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-5 + Map Reduce Local Work + Alias -> Map Local Tables: + a + Fetch Operator + limit: -1 + Alias -> Map Local Operator Tree: + a + TableScan + alias: a + Statistics: Num rows: 3 Data size: 294 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + HashTable Sink Operator + keys: + 0 c2 (type: char(10)) + 1 c2 (type: char(10)) + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 294 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 c2 (type: char(10)) + 1 c2 (type: char(10)) + outputColumnNames: _col0, _col1, _col5, _col6 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: char(10)), _col5 (type: int), _col6 (type: char(10)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: char(10)), _col2 (type: int), _col3 (type: char(10)) + Local Work: + Map Reduce Local Work + Execution mode: vectorized + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: char(10)), VALUE._col1 (type: int), VALUE._col2 (type: char(10)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@char_join1_vc1_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from char_join1_vc1_orc a join char_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@char_join1_vc1_orc +#### A masked pattern was here #### +1 abc 2 abc +1 abc 1 abc +2 abc 2 abc +2 abc 1 abc +3 abc 3 abc +PREHOOK: query: -- Join char with different length char +explain select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join char with different length char +explain select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-5 is a root stage + Stage-2 depends on stages: Stage-5 + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-5 + Map Reduce Local Work + Alias -> Map Local Tables: + a + Fetch Operator + limit: -1 + Alias -> Map Local Operator Tree: + a + TableScan + alias: a + Statistics: Num rows: 3 Data size: 294 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + HashTable Sink Operator + keys: + 0 c2 (type: char(10)) + 1 c2 (type: char(20)) + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 324 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 216 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 c2 (type: char(10)) + 1 c2 (type: char(20)) + outputColumnNames: _col0, _col1, _col5, _col6 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: char(10)), _col5 (type: int), _col6 (type: char(20)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: char(10)), _col2 (type: int), _col3 (type: char(20)) + Local Work: + Map Reduce Local Work + Execution mode: vectorized + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: char(10)), VALUE._col1 (type: int), VALUE._col2 (type: char(20)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@char_join1_vc1_orc +PREHOOK: Input: default@char_join1_vc2_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from char_join1_vc1_orc a join char_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@char_join1_vc1_orc +POSTHOOK: Input: default@char_join1_vc2_orc +#### A masked pattern was here #### +1 abc 2 abc +1 abc 1 abc +2 abc 2 abc +2 abc 1 abc +3 abc 3 abc +PREHOOK: query: -- Join char with string +explain select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join char with string +explain select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-5 is a root stage + Stage-2 depends on stages: Stage-5 + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-5 + Map Reduce Local Work + Alias -> Map Local Tables: + b + Fetch Operator + limit: -1 + Alias -> Map Local Operator Tree: + b + TableScan + alias: b + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + HashTable Sink Operator + keys: + 0 UDFToString(c2) (type: string) + 1 c2 (type: string) + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 3 Data size: 294 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: UDFToString(c2) is not null (type: boolean) + Statistics: Num rows: 2 Data size: 196 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 UDFToString(c2) (type: string) + 1 c2 (type: string) + outputColumnNames: _col0, _col1, _col5, _col6 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: char(10)), _col5 (type: int), _col6 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: char(10)), _col2 (type: int), _col3 (type: string) + Local Work: + Map Reduce Local Work + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: char(10)), VALUE._col1 (type: int), VALUE._col2 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 215 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@char_join1_str_orc +PREHOOK: Input: default@char_join1_vc1_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from char_join1_vc1_orc a join char_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@char_join1_str_orc +POSTHOOK: Input: default@char_join1_vc1_orc +#### A masked pattern was here #### +1 abc 1 abc +2 abc 1 abc +3 abc 3 abc +PREHOOK: query: drop table char_join1_vc1 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_vc1 +PREHOOK: Output: default@char_join1_vc1 +POSTHOOK: query: drop table char_join1_vc1 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_vc1 +POSTHOOK: Output: default@char_join1_vc1 +PREHOOK: query: drop table char_join1_vc2 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_vc2 +PREHOOK: Output: default@char_join1_vc2 +POSTHOOK: query: drop table char_join1_vc2 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_vc2 +POSTHOOK: Output: default@char_join1_vc2 +PREHOOK: query: drop table char_join1_str +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_str +PREHOOK: Output: default@char_join1_str +POSTHOOK: query: drop table char_join1_str +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_str +POSTHOOK: Output: default@char_join1_str +PREHOOK: query: drop table char_join1_vc1_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_vc1_orc +PREHOOK: Output: default@char_join1_vc1_orc +POSTHOOK: query: drop table char_join1_vc1_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_vc1_orc +POSTHOOK: Output: default@char_join1_vc1_orc +PREHOOK: query: drop table char_join1_vc2_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_vc2_orc +PREHOOK: Output: default@char_join1_vc2_orc +POSTHOOK: query: drop table char_join1_vc2_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_vc2_orc +POSTHOOK: Output: default@char_join1_vc2_orc +PREHOOK: query: drop table char_join1_str_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@char_join1_str_orc +PREHOOK: Output: default@char_join1_str_orc +POSTHOOK: query: drop table char_join1_str_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@char_join1_str_orc +POSTHOOK: Output: default@char_join1_str_orc Index: ql/src/test/results/clientpositive/vector_left_outer_join.q.out =================================================================== --- ql/src/test/results/clientpositive/vector_left_outer_join.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/vector_left_outer_join.q.out (working copy) @@ -25,14 +25,14 @@ Stage: Stage-8 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:c + $hdt$_0:$hdt$_1:c Fetch Operator limit: -1 - $hdt$_0:$hdt$_0:$hdt$_1:c + $hdt$_0:$hdt$_2:c Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_1:c + $hdt$_0:$hdt$_1:c TableScan alias: c Statistics: Num rows: 12288 Data size: 377237 Basic stats: COMPLETE Column stats: NONE @@ -44,7 +44,7 @@ keys: 0 _col1 (type: int) 1 _col0 (type: int) - $hdt$_0:$hdt$_0:$hdt$_1:c + $hdt$_0:$hdt$_2:c TableScan alias: c Statistics: Num rows: 12288 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/vector_varchar_mapjoin1.q.out =================================================================== --- ql/src/test/results/clientpositive/vector_varchar_mapjoin1.q.out (revision 0) +++ ql/src/test/results/clientpositive/vector_varchar_mapjoin1.q.out (working copy) @@ -0,0 +1,441 @@ +PREHOOK: query: drop table if exists varchar_join1_vc1 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_vc1 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_vc2 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_vc2 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_str +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_str +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_vc1_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_vc1_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_vc2_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_vc2_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists varchar_join1_str_orc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists varchar_join1_str_orc +POSTHOOK: type: DROPTABLE +PREHOOK: query: create table varchar_join1_vc1 ( + c1 int, + c2 varchar(10) +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_vc1 +POSTHOOK: query: create table varchar_join1_vc1 ( + c1 int, + c2 varchar(10) +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_vc1 +PREHOOK: query: create table varchar_join1_vc2 ( + c1 int, + c2 varchar(20) +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_vc2 +POSTHOOK: query: create table varchar_join1_vc2 ( + c1 int, + c2 varchar(20) +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_vc2 +PREHOOK: query: create table varchar_join1_str ( + c1 int, + c2 string +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_str +POSTHOOK: query: create table varchar_join1_str ( + c1 int, + c2 string +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_str +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc1 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@varchar_join1_vc1 +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc1 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@varchar_join1_vc1 +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc2 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@varchar_join1_vc2 +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_vc2 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@varchar_join1_vc2 +PREHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_str +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@varchar_join1_str +POSTHOOK: query: load data local inpath '../../data/files/vc1.txt' into table varchar_join1_str +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@varchar_join1_str +PREHOOK: query: create table varchar_join1_vc1_orc stored as orc as select * from varchar_join1_vc1 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@varchar_join1_vc1 +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_vc1_orc +POSTHOOK: query: create table varchar_join1_vc1_orc stored as orc as select * from varchar_join1_vc1 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@varchar_join1_vc1 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_vc1_orc +PREHOOK: query: create table varchar_join1_vc2_orc stored as orc as select * from varchar_join1_vc2 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@varchar_join1_vc2 +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_vc2_orc +POSTHOOK: query: create table varchar_join1_vc2_orc stored as orc as select * from varchar_join1_vc2 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@varchar_join1_vc2 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_vc2_orc +PREHOOK: query: create table varchar_join1_str_orc stored as orc as select * from varchar_join1_str +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@varchar_join1_str +PREHOOK: Output: database:default +PREHOOK: Output: default@varchar_join1_str_orc +POSTHOOK: query: create table varchar_join1_str_orc stored as orc as select * from varchar_join1_str +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@varchar_join1_str +POSTHOOK: Output: database:default +POSTHOOK: Output: default@varchar_join1_str_orc +PREHOOK: query: -- Join varchar with same length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join varchar with same length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-5 is a root stage + Stage-2 depends on stages: Stage-5 + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-5 + Map Reduce Local Work + Alias -> Map Local Tables: + a + Fetch Operator + limit: -1 + Alias -> Map Local Operator Tree: + a + TableScan + alias: a + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + HashTable Sink Operator + keys: + 0 c2 (type: varchar(10)) + 1 c2 (type: varchar(10)) + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 c2 (type: varchar(10)) + 1 c2 (type: varchar(10)) + outputColumnNames: _col0, _col1, _col5, _col6 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: varchar(10)), _col5 (type: int), _col6 (type: varchar(10)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: varchar(10)), _col2 (type: int), _col3 (type: varchar(10)) + Local Work: + Map Reduce Local Work + Execution mode: vectorized + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: varchar(10)), VALUE._col1 (type: int), VALUE._col2 (type: varchar(10)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@varchar_join1_vc1_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_vc1_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@varchar_join1_vc1_orc +#### A masked pattern was here #### +1 abc 1 abc +2 abc 2 abc +3 abc 3 abc +PREHOOK: query: -- Join varchar with different length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join varchar with different length varchar +explain select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-5 is a root stage + Stage-2 depends on stages: Stage-5 + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-5 + Map Reduce Local Work + Alias -> Map Local Tables: + a + Fetch Operator + limit: -1 + Alias -> Map Local Operator Tree: + a + TableScan + alias: a + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + HashTable Sink Operator + keys: + 0 c2 (type: varchar(10)) + 1 c2 (type: varchar(20)) + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + alias: b + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 c2 (type: varchar(10)) + 1 c2 (type: varchar(20)) + outputColumnNames: _col0, _col1, _col5, _col6 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: varchar(10)), _col5 (type: int), _col6 (type: varchar(20)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: varchar(10)), _col2 (type: int), _col3 (type: varchar(20)) + Local Work: + Map Reduce Local Work + Execution mode: vectorized + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: varchar(10)), VALUE._col1 (type: int), VALUE._col2 (type: varchar(20)) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@varchar_join1_vc1_orc +PREHOOK: Input: default@varchar_join1_vc2_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_vc2_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@varchar_join1_vc1_orc +POSTHOOK: Input: default@varchar_join1_vc2_orc +#### A masked pattern was here #### +1 abc 1 abc +2 abc 2 abc +3 abc 3 abc +PREHOOK: query: -- Join varchar with string +explain select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +POSTHOOK: query: -- Join varchar with string +explain select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-5 is a root stage + Stage-2 depends on stages: Stage-5 + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-5 + Map Reduce Local Work + Alias -> Map Local Tables: + b + Fetch Operator + limit: -1 + Alias -> Map Local Operator Tree: + b + TableScan + alias: b + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: c2 is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + HashTable Sink Operator + keys: + 0 UDFToString(c2) (type: string) + 1 c2 (type: string) + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + alias: a + Statistics: Num rows: 3 Data size: 273 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: UDFToString(c2) is not null (type: boolean) + Statistics: Num rows: 2 Data size: 182 Basic stats: COMPLETE Column stats: NONE + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 UDFToString(c2) (type: string) + 1 c2 (type: string) + outputColumnNames: _col0, _col1, _col5, _col6 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: _col0 (type: int), _col1 (type: varchar(10)), _col5 (type: int), _col6 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int) + sort order: + + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: varchar(10)), _col2 (type: int), _col3 (type: string) + Local Work: + Map Reduce Local Work + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: varchar(10)), VALUE._col1 (type: int), VALUE._col2 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 200 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@varchar_join1_str_orc +PREHOOK: Input: default@varchar_join1_vc1_orc +#### A masked pattern was here #### +POSTHOOK: query: select * from varchar_join1_vc1_orc a join varchar_join1_str_orc b on (a.c2 = b.c2) order by a.c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@varchar_join1_str_orc +POSTHOOK: Input: default@varchar_join1_vc1_orc +#### A masked pattern was here #### +1 abc 1 abc +2 abc 2 abc +3 abc 3 abc +PREHOOK: query: drop table varchar_join1_vc1 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_vc1 +PREHOOK: Output: default@varchar_join1_vc1 +POSTHOOK: query: drop table varchar_join1_vc1 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_vc1 +POSTHOOK: Output: default@varchar_join1_vc1 +PREHOOK: query: drop table varchar_join1_vc2 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_vc2 +PREHOOK: Output: default@varchar_join1_vc2 +POSTHOOK: query: drop table varchar_join1_vc2 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_vc2 +POSTHOOK: Output: default@varchar_join1_vc2 +PREHOOK: query: drop table varchar_join1_str +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_str +PREHOOK: Output: default@varchar_join1_str +POSTHOOK: query: drop table varchar_join1_str +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_str +POSTHOOK: Output: default@varchar_join1_str +PREHOOK: query: drop table varchar_join1_vc1_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_vc1_orc +PREHOOK: Output: default@varchar_join1_vc1_orc +POSTHOOK: query: drop table varchar_join1_vc1_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_vc1_orc +POSTHOOK: Output: default@varchar_join1_vc1_orc +PREHOOK: query: drop table varchar_join1_vc2_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_vc2_orc +PREHOOK: Output: default@varchar_join1_vc2_orc +POSTHOOK: query: drop table varchar_join1_vc2_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_vc2_orc +POSTHOOK: Output: default@varchar_join1_vc2_orc +PREHOOK: query: drop table varchar_join1_str_orc +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@varchar_join1_str_orc +PREHOOK: Output: default@varchar_join1_str_orc +POSTHOOK: query: drop table varchar_join1_str_orc +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@varchar_join1_str_orc +POSTHOOK: Output: default@varchar_join1_str_orc Index: ql/src/test/results/clientpositive/vectorized_mapjoin.q.out =================================================================== --- ql/src/test/results/clientpositive/vectorized_mapjoin.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/vectorized_mapjoin.q.out (working copy) @@ -15,11 +15,11 @@ Stage: Stage-5 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:t1 + $hdt$_0:$hdt$_0:t1 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:t1 + $hdt$_0:$hdt$_0:t1 TableScan alias: t1 Statistics: Num rows: 12288 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Index: ql/src/test/results/clientpositive/vectorized_nested_mapjoin.q.out =================================================================== --- ql/src/test/results/clientpositive/vectorized_nested_mapjoin.q.out (revision 1650429) +++ ql/src/test/results/clientpositive/vectorized_nested_mapjoin.q.out (working copy) @@ -11,14 +11,14 @@ Stage: Stage-8 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:v1 + $hdt$_0:$hdt$_0:$hdt$_0:v1 Fetch Operator limit: -1 - $hdt$_0:$hdt$_0:$hdt$_1:v1 + $hdt$_0:$hdt$_1:v1 Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:$hdt$_0:v1 + $hdt$_0:$hdt$_0:$hdt$_0:v1 TableScan alias: v1 Statistics: Num rows: 12288 Data size: 377237 Basic stats: COMPLETE Column stats: NONE @@ -33,7 +33,7 @@ keys: 0 _col0 (type: tinyint) 1 _col0 (type: tinyint) - $hdt$_0:$hdt$_0:$hdt$_1:v1 + $hdt$_0:$hdt$_1:v1 TableScan alias: v1 Statistics: Num rows: 12288 Data size: 377237 Basic stats: COMPLETE Column stats: NONE Index: serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerDe.java =================================================================== --- serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerDe.java (revision 1650429) +++ serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerDe.java (working copy) @@ -100,7 +100,7 @@ || properties.getProperty(AvroSerdeUtils.AvroTableProperties.SCHEMA_URL.getPropName()) != null || columnNameProperty == null || columnNameProperty.isEmpty() || columnTypeProperty == null || columnTypeProperty.isEmpty()) { - schema = determineSchemaOrReturnErrorSchema(properties); + schema = determineSchemaOrReturnErrorSchema(configuration, properties); } else { // Get column names and sort order columnNames = Arrays.asList(columnNameProperty.split(",")); @@ -159,10 +159,10 @@ * any call, including calls to update the serde properties, meaning * if the serde is in a bad state, there is no way to update that state. */ - public Schema determineSchemaOrReturnErrorSchema(Properties props) { + public Schema determineSchemaOrReturnErrorSchema(Configuration conf, Properties props) { try { configErrors = ""; - return AvroSerdeUtils.determineSchemaOrThrowException(props); + return AvroSerdeUtils.determineSchemaOrThrowException(conf, props); } catch(AvroSerdeException he) { LOG.warn("Encountered AvroSerdeException determining schema. Returning " + "signal schema to indicate problem", he); Index: serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerdeUtils.java =================================================================== --- serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerdeUtils.java (revision 1650429) +++ serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerdeUtils.java (working copy) @@ -97,7 +97,7 @@ * @throws IOException if error while trying to read the schema from another location * @throws AvroSerdeException if unable to find a schema or pointer to it in the properties */ - public static Schema determineSchemaOrThrowException(Properties properties) + public static Schema determineSchemaOrThrowException(Configuration conf, Properties properties) throws IOException, AvroSerdeException { String schemaString = properties.getProperty(AvroTableProperties.SCHEMA_LITERAL.getPropName()); if(schemaString != null && !schemaString.equals(SCHEMA_NONE)) @@ -109,7 +109,7 @@ throw new AvroSerdeException(EXCEPTION_MESSAGE); try { - Schema s = getSchemaFromFS(schemaString, new Configuration()); + Schema s = getSchemaFromFS(schemaString, conf); if (s == null) { //in case schema is not a file system return AvroSerdeUtils.getSchemaFor(new URL(schemaString).openStream()); Index: serde/src/test/org/apache/hadoop/hive/serde2/avro/TestAvroSerdeUtils.java =================================================================== --- serde/src/test/org/apache/hadoop/hive/serde2/avro/TestAvroSerdeUtils.java (revision 1650429) +++ serde/src/test/org/apache/hadoop/hive/serde2/avro/TestAvroSerdeUtils.java (working copy) @@ -117,26 +117,29 @@ @Test(expected=AvroSerdeException.class) public void determineSchemaThrowsExceptionIfNoSchema() throws IOException, AvroSerdeException { + Configuration conf = new Configuration(); Properties prop = new Properties(); - AvroSerdeUtils.determineSchemaOrThrowException(prop); + AvroSerdeUtils.determineSchemaOrThrowException(conf, prop); } @Test public void determineSchemaFindsLiterals() throws Exception { String schema = TestAvroObjectInspectorGenerator.RECORD_SCHEMA; + Configuration conf = new Configuration(); Properties props = new Properties(); props.put(AvroSerdeUtils.SCHEMA_LITERAL, schema); Schema expected = AvroSerdeUtils.getSchemaFor(schema); - assertEquals(expected, AvroSerdeUtils.determineSchemaOrThrowException(props)); + assertEquals(expected, AvroSerdeUtils.determineSchemaOrThrowException(conf, props)); } @Test public void detemineSchemaTriesToOpenUrl() throws AvroSerdeException, IOException { + Configuration conf = new Configuration(); Properties props = new Properties(); props.put(AvroSerdeUtils.SCHEMA_URL, "not:///a.real.url"); try { - AvroSerdeUtils.determineSchemaOrThrowException(props); + AvroSerdeUtils.determineSchemaOrThrowException(conf, props); fail("Should have tried to open that URL"); } catch (AvroSerdeException e) { assertEquals("Unable to read schema from given path: not:///a.real.url", e.getMessage()); @@ -145,13 +148,14 @@ @Test public void noneOptionWorksForSpecifyingSchemas() throws IOException, AvroSerdeException { + Configuration conf = new Configuration(); Properties props = new Properties(); // Combo 1: Both set to none props.put(SCHEMA_URL, SCHEMA_NONE); props.put(SCHEMA_LITERAL, SCHEMA_NONE); try { - determineSchemaOrThrowException(props); + determineSchemaOrThrowException(conf, props); fail("Should have thrown exception with none set for both url and literal"); } catch(AvroSerdeException he) { assertEquals(EXCEPTION_MESSAGE, he.getMessage()); @@ -161,7 +165,7 @@ props.put(SCHEMA_LITERAL, TestAvroObjectInspectorGenerator.RECORD_SCHEMA); Schema s; try { - s = determineSchemaOrThrowException(props); + s = determineSchemaOrThrowException(conf, props); assertNotNull(s); assertEquals(AvroSerdeUtils.getSchemaFor(TestAvroObjectInspectorGenerator.RECORD_SCHEMA), s); } catch(AvroSerdeException he) { @@ -172,7 +176,7 @@ props.put(SCHEMA_LITERAL, SCHEMA_NONE); props.put(SCHEMA_URL, "not:///a.real.url"); try { - determineSchemaOrThrowException(props); + determineSchemaOrThrowException(conf, props); fail("Should have tried to open that bogus URL"); } catch (AvroSerdeException e) { assertEquals("Unable to read schema from given path: not:///a.real.url", e.getMessage());