From 339a2e89675445d3ade1c49249d271694ece89a0 Mon Sep 17 00:00:00 2001 From: Lars Francke Date: Fri, 11 Sep 2026 09:43:32 +0200 Subject: [PATCH] feat(hive): Restore the Thrift methods removed by HIVE-26537 for 4.2.0 Hive 4.0.1 removed get_table and get_table_objects_by_name from the metastore Thrift interface. Any client built against a Hive 2.3 metastore client still calls them, and that is what Spark bundles: 2.3.9 in Spark 3.5, 2.3.10 in Spark 4.0 through 4.2. Iceberg's HiveCatalog reaches the metastore through IMetaStoreClient and therefore uses whichever client Spark supplies, so an Iceberg job against a Hive 4.0.1 or newer metastore fails. This restores the methods as they were in Hive 4.0.0. --- CHANGELOG.md | 4 + hive/Dockerfile | 4 + ...-reactor-dependency-against-the-modu.patch | 130 + ...ecated-get_table-and-get_table_objec.patch | 2447 +++++++++++++++++ 4 files changed, 2585 insertions(+) create mode 100644 hive/stackable/patches/4.2.0/0005-Resolve-every-in-reactor-dependency-against-the-modu.patch create mode 100644 hive/stackable/patches/4.2.0/0006-Restore-the-deprecated-get_table-and-get_table_objec.patch diff --git a/CHANGELOG.md b/CHANGELOG.md index 602a64cf2..7ed40e8b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ All notable changes to this project will be documented in this file. - nifi: Backport NIFI-15958 to log periodic progress while waiting for the content archive scan and provenance re-index, for `2.6.0`, `2.7.2`, and `2.9.0` ([#1611]). - hbase: Add an SBOM for the web UI (npm) dependencies, which are unpacked from webjars and therefore not covered by the CycloneDX Maven plugin ([#1620]). - trino: Add SBOMs for the web UI, both for the two npm projects behind it and for the pre-built JavaScript vendored into the source tree ([#1620]). +- hive: Restore the `get_table` and `get_table_objects_by_name` Thrift methods that HIVE-26537 removed in Hive 4.0.1, for `4.2.0` ([#1636]). - hadoop, spark: Add SBOMs for the pre-built JavaScript that is vendored into the source tree for the HDFS and Spark web UIs ([#1620]). ### Changed @@ -45,6 +46,8 @@ All notable changes to this project will be documented in this file. - hbase: Exclude the optional npm dependencies from the web UI SBOM ([#1630]). - airflow, superset: Create the Python SBOM from a separate environment, so that neither cyclonedx-bom nor its dependencies end up in the SBOM and in the image ([#1630]). - airflow, superset: Add the missing purl to the Airflow and Superset packages in the Python SBOM. They are installed from a locally built wheel, and without a purl they show up twice in the image SBOM ([#1630]). +- hive: Build against the Hive modules built alongside each other (in the same reactor) rather than the ones published on Maven Central, for `4.2.0`. + Upstream fixed one instance of this for Hive 4.3.0 in [HIVE-29827](https://issues.apache.org/jira/browse/HIVE-29827) but there are others. ([#1636]). ### Removed @@ -61,6 +64,7 @@ All notable changes to this project will be documented in this file. [#1623]: https://github.com/stackabletech/docker-images/pull/1623 [#1630]: https://github.com/stackabletech/docker-images/pull/1630 [#1635]: https://github.com/stackabletech/docker-images/pull/1635 +[#1636]: https://github.com/stackabletech/docker-images/pull/1636 ## [26.7.0] - 2026-07-21 diff --git a/hive/Dockerfile b/hive/Dockerfile index 35b85878c..ee1398ab7 100644 --- a/hive/Dockerfile +++ b/hive/Dockerfile @@ -83,9 +83,13 @@ elif [[ "${PRODUCT_VERSION}" == 4.0.* ]]; then ) else # Starting with 4.1.0 the build process changed again in https://github.com/apache/hive/pull/5936 (HIVE-29062) + # The main reactor pins its dependencies on the standalone-metastore modules through `standalone-metastore.version`. + # This is _not_ changed by `mvn versions:set` above. + # If we do not change it here it'd download those dependencies (without the -stackableXXXX suffix) from Maven central. mvn \ clean package \ -Dhadoop.version=${HADOOP_VERSION}-stackable${RELEASE_VERSION} \ + -Dstandalone-metastore.version=${NEW_VERSION} \ -DskipTests \ -Pdist # Looks like we can not filter the projects using "--projects standalone-metastore/metastore-server --also-make", diff --git a/hive/stackable/patches/4.2.0/0005-Resolve-every-in-reactor-dependency-against-the-modu.patch b/hive/stackable/patches/4.2.0/0005-Resolve-every-in-reactor-dependency-against-the-modu.patch new file mode 100644 index 000000000..eb508a72d --- /dev/null +++ b/hive/stackable/patches/4.2.0/0005-Resolve-every-in-reactor-dependency-against-the-modu.patch @@ -0,0 +1,130 @@ +From a8aada47897543df0ba008655852e16aa5ede477 Mon Sep 17 00:00:00 2001 +From: Lars Francke +Date: Fri, 11 Sep 2026 14:48:51 +0200 +Subject: Resolve every in-reactor dependency against the modules built + alongside it + +standalone-metastore refers to several modules built in the same reactor through the literal +hive.version property rather than ${project.version}. +We use "mvn versions:set" to stamp our Stackable release version and we also expect Hive to +then honor that. This patch makes sure it does (plus a change in the Dockerfile) + +Upstream fixed one instance of this, the metastore-server to metastore-client reference, for +Hive 4.3.0: https://issues.apache.org/jira/browse/HIVE-29827. +--- + standalone-metastore/metastore-rest-catalog/pom.xml | 10 +++++----- + standalone-metastore/metastore-server/pom.xml | 2 +- + .../metastore-tools/metastore-benchmarks/pom.xml | 2 +- + standalone-metastore/metastore-tools/pom.xml | 2 +- + standalone-metastore/packaging/pom.xml | 6 +++--- + 5 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/standalone-metastore/metastore-rest-catalog/pom.xml b/standalone-metastore/metastore-rest-catalog/pom.xml +index ad6cecb535..8a4054422f 100644 +--- a/standalone-metastore/metastore-rest-catalog/pom.xml ++++ b/standalone-metastore/metastore-rest-catalog/pom.xml +@@ -34,31 +34,31 @@ + + org.apache.hive + hive-standalone-metastore-server +- ${hive.version} ++ ${project.version} + provided + + + org.apache.hive + hive-standalone-metastore-common +- ${hive.version} ++ ${project.version} + + + org.apache.hive + hive-iceberg-catalog +- ${hive.version} ++ ${project.version} + + + + org.apache.hive + hive-standalone-metastore-common +- ${hive.version} ++ ${project.version} + tests + test + + + org.apache.hive + hive-standalone-metastore-server +- ${hive.version} ++ ${project.version} + tests + test + +diff --git a/standalone-metastore/metastore-server/pom.xml b/standalone-metastore/metastore-server/pom.xml +index 0e24b3ebc9..5ffdb4047f 100644 +--- a/standalone-metastore/metastore-server/pom.xml ++++ b/standalone-metastore/metastore-server/pom.xml +@@ -28,7 +28,7 @@ + + org.apache.hive + hive-standalone-metastore-client +- ${hive.version} ++ ${project.version} + + + org.apache.httpcomponents +diff --git a/standalone-metastore/metastore-tools/metastore-benchmarks/pom.xml b/standalone-metastore/metastore-tools/metastore-benchmarks/pom.xml +index 44281104b1..b6a1037574 100644 +--- a/standalone-metastore/metastore-tools/metastore-benchmarks/pom.xml ++++ b/standalone-metastore/metastore-tools/metastore-benchmarks/pom.xml +@@ -46,7 +46,7 @@ + + org.apache.hive.hcatalog + hive-hcatalog-server-extensions +- ${hive.version} ++ ${project.version} + + + org.apache.zookeeper +diff --git a/standalone-metastore/metastore-tools/pom.xml b/standalone-metastore/metastore-tools/pom.xml +index 4da5ea9d44..b184241f3e 100644 +--- a/standalone-metastore/metastore-tools/pom.xml ++++ b/standalone-metastore/metastore-tools/pom.xml +@@ -39,7 +39,7 @@ + + org.apache.hive.hcatalog + hive-hcatalog-server-extensions +- ${hive.version} ++ ${project.version} + + + org.apache.zookeeper +diff --git a/standalone-metastore/packaging/pom.xml b/standalone-metastore/packaging/pom.xml +index 5a526cf722..733a203db6 100644 +--- a/standalone-metastore/packaging/pom.xml ++++ b/standalone-metastore/packaging/pom.xml +@@ -176,7 +176,7 @@ + + org.apache.hive + hive-metastore +- ${hive.version} ++ ${project.version} + + + org.apache.hive +@@ -192,13 +192,13 @@ + + org.apache.hive + hive-exec +- ${hive.version} ++ ${project.version} + core + + + org.apache.hive + hive-iceberg-handler +- ${hive.version} ++ ${project.version} + + + org.apache.hive diff --git a/hive/stackable/patches/4.2.0/0006-Restore-the-deprecated-get_table-and-get_table_objec.patch b/hive/stackable/patches/4.2.0/0006-Restore-the-deprecated-get_table-and-get_table_objec.patch new file mode 100644 index 000000000..5e113ab55 --- /dev/null +++ b/hive/stackable/patches/4.2.0/0006-Restore-the-deprecated-get_table-and-get_table_objec.patch @@ -0,0 +1,2447 @@ +From d008322d70fa9285d70b3c29ea1ca17cf433e3b3 Mon Sep 17 00:00:00 2001 +From: Lars Francke +Date: Fri, 11 Sep 2026 14:53:53 +0200 +Subject: Restore the deprecated get_table and get_table_objects_by_name Thrift + methods + +HIVE-26537 removed five methods from the HMS Thrift interface in Hive 4.0.1. Two of them, +get_table and get_table_objects_by_name, are still called by any metastore client built +against Hive 2.3, which is what Spark bundles: 2.3.9 in Spark 3.5 and 2.3.10 in Spark 4.0 +through 4.2. Iceberg's HiveCatalog reaches the metastore through IMetaStoreClient and so +uses whichever client Spark supplies, which makes an Iceberg job against a Hive 4.0.1 or +newer metastore fail with + + TApplicationException: Invalid method name: 'get_table' + +The removal was a code cleanup and not any kind of fix and also no security issue. +--- + .../metastore/api/ThriftHiveMetastore.java | 2300 +++++++++++++++++ + .../src/main/thrift/hive_metastore.thrift | 13 + + .../hadoop/hive/metastore/HMSHandler.java | 18 + + 3 files changed, 2331 insertions(+) + +diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java +index f2746b3582..4f3235f204 100644 +--- a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java ++++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java +@@ -583,6 +583,10 @@ package org.apache.hadoop.hive.metastore.api; + + public ReplayedTxnsForPolicyResult get_replayed_txns_for_policy(java.lang.String policyName) throws MetaException, org.apache.thrift.TException; + ++ public Table get_table(java.lang.String dbname, java.lang.String tbl_name) throws MetaException, NoSuchObjectException, org.apache.thrift.TException; ++ ++ public java.util.List get_table_objects_by_name(java.lang.String dbname, java.util.List tbl_names) throws org.apache.thrift.TException; ++ + } + + @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public interface AsyncIface extends com.facebook.fb303.FacebookService .AsyncIface { +@@ -1155,6 +1159,10 @@ package org.apache.hadoop.hive.metastore.api; + + public void get_replayed_txns_for_policy(java.lang.String policyName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException; + ++ public void get_table(java.lang.String dbname, java.lang.String tbl_name, org.apache.thrift.async.AsyncMethodCallback
resultHandler) throws org.apache.thrift.TException; ++ ++ public void get_table_objects_by_name(java.lang.String dbname, java.util.List tbl_names, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws org.apache.thrift.TException; ++ + } + + @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class Client extends com.facebook.fb303.FacebookService.Client implements Iface { +@@ -9202,6 +9210,60 @@ package org.apache.hadoop.hive.metastore.api; + throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_replayed_txns_for_policy failed: unknown result"); + } + ++ public Table get_table(java.lang.String dbname, java.lang.String tbl_name) throws MetaException, NoSuchObjectException, org.apache.thrift.TException ++ { ++ send_get_table(dbname, tbl_name); ++ return recv_get_table(); ++ } ++ ++ public void send_get_table(java.lang.String dbname, java.lang.String tbl_name) throws org.apache.thrift.TException ++ { ++ get_table_args args = new get_table_args(); ++ args.setDbname(dbname); ++ args.setTbl_name(tbl_name); ++ sendBase("get_table", args); ++ } ++ ++ public Table recv_get_table() throws MetaException, NoSuchObjectException, org.apache.thrift.TException ++ { ++ get_table_result result = new get_table_result(); ++ receiveBase(result, "get_table"); ++ if (result.isSetSuccess()) { ++ return result.success; ++ } ++ if (result.o1 != null) { ++ throw result.o1; ++ } ++ if (result.o2 != null) { ++ throw result.o2; ++ } ++ throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_table failed: unknown result"); ++ } ++ ++ public java.util.List
get_table_objects_by_name(java.lang.String dbname, java.util.List tbl_names) throws org.apache.thrift.TException ++ { ++ send_get_table_objects_by_name(dbname, tbl_names); ++ return recv_get_table_objects_by_name(); ++ } ++ ++ public void send_get_table_objects_by_name(java.lang.String dbname, java.util.List tbl_names) throws org.apache.thrift.TException ++ { ++ get_table_objects_by_name_args args = new get_table_objects_by_name_args(); ++ args.setDbname(dbname); ++ args.setTbl_names(tbl_names); ++ sendBase("get_table_objects_by_name", args); ++ } ++ ++ public java.util.List
recv_get_table_objects_by_name() throws org.apache.thrift.TException ++ { ++ get_table_objects_by_name_result result = new get_table_objects_by_name_result(); ++ receiveBase(result, "get_table_objects_by_name"); ++ if (result.isSetSuccess()) { ++ return result.success; ++ } ++ throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_table_objects_by_name failed: unknown result"); ++ } ++ + } + @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class AsyncClient extends com.facebook.fb303.FacebookService.AsyncClient implements AsyncIface { + @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class Factory implements org.apache.thrift.async.TAsyncClientFactory { +@@ -18809,6 +18871,76 @@ package org.apache.hadoop.hive.metastore.api; + } + } + ++ public void get_table(java.lang.String dbname, java.lang.String tbl_name, org.apache.thrift.async.AsyncMethodCallback
resultHandler) throws org.apache.thrift.TException { ++ checkReady(); ++ get_table_call method_call = new get_table_call(dbname, tbl_name, resultHandler, this, ___protocolFactory, ___transport); ++ this.___currentMethod = method_call; ++ ___manager.call(method_call); ++ } ++ ++ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_call extends org.apache.thrift.async.TAsyncMethodCall
{ ++ private java.lang.String dbname; ++ private java.lang.String tbl_name; ++ public get_table_call(java.lang.String dbname, java.lang.String tbl_name, 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.dbname = dbname; ++ this.tbl_name = tbl_name; ++ } ++ ++ public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { ++ prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_table", org.apache.thrift.protocol.TMessageType.CALL, 0)); ++ get_table_args args = new get_table_args(); ++ args.setDbname(dbname); ++ args.setTbl_name(tbl_name); ++ args.write(prot); ++ prot.writeMessageEnd(); ++ } ++ ++ public Table getResult() throws MetaException, NoSuchObjectException, org.apache.thrift.TException { ++ if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { ++ throw new java.lang.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_get_table(); ++ } ++ } ++ ++ public void get_table_objects_by_name(java.lang.String dbname, java.util.List tbl_names, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws org.apache.thrift.TException { ++ checkReady(); ++ get_table_objects_by_name_call method_call = new get_table_objects_by_name_call(dbname, tbl_names, resultHandler, this, ___protocolFactory, ___transport); ++ this.___currentMethod = method_call; ++ ___manager.call(method_call); ++ } ++ ++ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_objects_by_name_call extends org.apache.thrift.async.TAsyncMethodCall> { ++ private java.lang.String dbname; ++ private java.util.List tbl_names; ++ public get_table_objects_by_name_call(java.lang.String dbname, java.util.List tbl_names, 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.dbname = dbname; ++ this.tbl_names = tbl_names; ++ } ++ ++ public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { ++ prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_table_objects_by_name", org.apache.thrift.protocol.TMessageType.CALL, 0)); ++ get_table_objects_by_name_args args = new get_table_objects_by_name_args(); ++ args.setDbname(dbname); ++ args.setTbl_names(tbl_names); ++ args.write(prot); ++ prot.writeMessageEnd(); ++ } ++ ++ public java.util.List
getResult() throws org.apache.thrift.TException { ++ if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) { ++ throw new java.lang.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_get_table_objects_by_name(); ++ } ++ } ++ + } + + @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class Processor extends com.facebook.fb303.FacebookService.Processor implements org.apache.thrift.TProcessor { +@@ -19106,6 +19238,8 @@ package org.apache.hadoop.hive.metastore.api; + processMap.put("drop_package", new drop_package()); + processMap.put("get_all_write_event_info", new get_all_write_event_info()); + processMap.put("get_replayed_txns_for_policy", new get_replayed_txns_for_policy()); ++ processMap.put("get_table", new get_table()); ++ processMap.put("get_table_objects_by_name", new get_table_objects_by_name()); + return processMap; + } + +@@ -27783,6 +27917,62 @@ package org.apache.hadoop.hive.metastore.api; + } + } + ++ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table extends org.apache.thrift.ProcessFunction { ++ public get_table() { ++ super("get_table"); ++ } ++ ++ public get_table_args getEmptyArgsInstance() { ++ return new get_table_args(); ++ } ++ ++ protected boolean isOneway() { ++ return false; ++ } ++ ++ @Override ++ protected boolean rethrowUnhandledExceptions() { ++ return false; ++ } ++ ++ public get_table_result getResult(I iface, get_table_args args) throws org.apache.thrift.TException { ++ get_table_result result = new get_table_result(); ++ try { ++ result.success = iface.get_table(args.dbname, args.tbl_name); ++ } catch (MetaException o1) { ++ result.o1 = o1; ++ } catch (NoSuchObjectException o2) { ++ result.o2 = o2; ++ } ++ return result; ++ } ++ } ++ ++ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_objects_by_name extends org.apache.thrift.ProcessFunction { ++ public get_table_objects_by_name() { ++ super("get_table_objects_by_name"); ++ } ++ ++ public get_table_objects_by_name_args getEmptyArgsInstance() { ++ return new get_table_objects_by_name_args(); ++ } ++ ++ protected boolean isOneway() { ++ return false; ++ } ++ ++ @Override ++ protected boolean rethrowUnhandledExceptions() { ++ return false; ++ } ++ ++ public get_table_objects_by_name_result getResult(I iface, get_table_objects_by_name_args args) throws org.apache.thrift.TException { ++ get_table_objects_by_name_result result = new get_table_objects_by_name_result(); ++ result.success = iface.get_table_objects_by_name(args.dbname, args.tbl_names); ++ return result; ++ } ++ } ++ + } + + @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class AsyncProcessor extends com.facebook.fb303.FacebookService.AsyncProcessor { +@@ -28080,6 +28270,8 @@ package org.apache.hadoop.hive.metastore.api; + processMap.put("drop_package", new drop_package()); + processMap.put("get_all_write_event_info", new get_all_write_event_info()); + processMap.put("get_replayed_txns_for_policy", new get_replayed_txns_for_policy()); ++ processMap.put("get_table", new get_table()); ++ processMap.put("get_table_objects_by_name", new get_table_objects_by_name()); + return processMap; + } + +@@ -47446,6 +47638,136 @@ package org.apache.hadoop.hive.metastore.api; + } + } + ++ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table extends org.apache.thrift.AsyncProcessFunction { ++ public get_table() { ++ super("get_table"); ++ } ++ ++ public get_table_args getEmptyArgsInstance() { ++ return new get_table_args(); ++ } ++ ++ public org.apache.thrift.async.AsyncMethodCallback
getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) { ++ final org.apache.thrift.AsyncProcessFunction fcall = this; ++ return new org.apache.thrift.async.AsyncMethodCallback
() { ++ public void onComplete(Table o) { ++ get_table_result result = new get_table_result(); ++ result.success = o; ++ try { ++ fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid); ++ } catch (org.apache.thrift.transport.TTransportException e) { ++ _LOGGER.error("TTransportException writing to internal frame buffer", e); ++ fb.close(); ++ } catch (java.lang.Exception e) { ++ _LOGGER.error("Exception writing to internal frame buffer", e); ++ onError(e); ++ } ++ } ++ public void onError(java.lang.Exception e) { ++ byte msgType = org.apache.thrift.protocol.TMessageType.REPLY; ++ org.apache.thrift.TSerializable msg; ++ get_table_result result = new get_table_result(); ++ if (e instanceof MetaException) { ++ result.o1 = (MetaException) e; ++ result.setO1IsSet(true); ++ msg = result; ++ } else if (e instanceof NoSuchObjectException) { ++ result.o2 = (NoSuchObjectException) e; ++ result.setO2IsSet(true); ++ msg = result; ++ } else if (e instanceof org.apache.thrift.transport.TTransportException) { ++ _LOGGER.error("TTransportException inside handler", e); ++ fb.close(); ++ return; ++ } else if (e instanceof org.apache.thrift.TApplicationException) { ++ _LOGGER.error("TApplicationException inside handler", e); ++ msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION; ++ msg = (org.apache.thrift.TApplicationException)e; ++ } else { ++ _LOGGER.error("Exception inside handler", e); ++ msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION; ++ msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage()); ++ } ++ try { ++ fcall.sendResponse(fb,msg,msgType,seqid); ++ } catch (java.lang.Exception ex) { ++ _LOGGER.error("Exception writing to internal frame buffer", ex); ++ fb.close(); ++ } ++ } ++ }; ++ } ++ ++ protected boolean isOneway() { ++ return false; ++ } ++ ++ public void start(I iface, get_table_args args, org.apache.thrift.async.AsyncMethodCallback
resultHandler) throws org.apache.thrift.TException { ++ iface.get_table(args.dbname, args.tbl_name,resultHandler); ++ } ++ } ++ ++ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_objects_by_name extends org.apache.thrift.AsyncProcessFunction> { ++ public get_table_objects_by_name() { ++ super("get_table_objects_by_name"); ++ } ++ ++ public get_table_objects_by_name_args getEmptyArgsInstance() { ++ return new get_table_objects_by_name_args(); ++ } ++ ++ public org.apache.thrift.async.AsyncMethodCallback> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) { ++ final org.apache.thrift.AsyncProcessFunction fcall = this; ++ return new org.apache.thrift.async.AsyncMethodCallback>() { ++ public void onComplete(java.util.List
o) { ++ get_table_objects_by_name_result result = new get_table_objects_by_name_result(); ++ result.success = o; ++ try { ++ fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid); ++ } catch (org.apache.thrift.transport.TTransportException e) { ++ _LOGGER.error("TTransportException writing to internal frame buffer", e); ++ fb.close(); ++ } catch (java.lang.Exception e) { ++ _LOGGER.error("Exception writing to internal frame buffer", e); ++ onError(e); ++ } ++ } ++ public void onError(java.lang.Exception e) { ++ byte msgType = org.apache.thrift.protocol.TMessageType.REPLY; ++ org.apache.thrift.TSerializable msg; ++ get_table_objects_by_name_result result = new get_table_objects_by_name_result(); ++ if (e instanceof org.apache.thrift.transport.TTransportException) { ++ _LOGGER.error("TTransportException inside handler", e); ++ fb.close(); ++ return; ++ } else if (e instanceof org.apache.thrift.TApplicationException) { ++ _LOGGER.error("TApplicationException inside handler", e); ++ msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION; ++ msg = (org.apache.thrift.TApplicationException)e; ++ } else { ++ _LOGGER.error("Exception inside handler", e); ++ msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION; ++ msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage()); ++ } ++ try { ++ fcall.sendResponse(fb,msg,msgType,seqid); ++ } catch (java.lang.Exception ex) { ++ _LOGGER.error("Exception writing to internal frame buffer", ex); ++ fb.close(); ++ } ++ } ++ }; ++ } ++ ++ protected boolean isOneway() { ++ return false; ++ } ++ ++ public void start(I iface, get_table_objects_by_name_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws org.apache.thrift.TException { ++ iface.get_table_objects_by_name(args.dbname, args.tbl_names,resultHandler); ++ } ++ } ++ + } + + @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class abort_Compactions_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { +@@ -322884,4 +323206,1982 @@ package org.apache.hadoop.hive.metastore.api; + } + } + ++ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { ++ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_args"); ++ ++ private static final org.apache.thrift.protocol.TField DBNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbname", org.apache.thrift.protocol.TType.STRING, (short)1); ++ private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_name", org.apache.thrift.protocol.TType.STRING, (short)2); ++ ++ private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_argsStandardSchemeFactory(); ++ private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_argsTupleSchemeFactory(); ++ ++ private @org.apache.thrift.annotation.Nullable java.lang.String dbname; // required ++ private @org.apache.thrift.annotation.Nullable java.lang.String tbl_name; // 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 { ++ DBNAME((short)1, "dbname"), ++ TBL_NAME((short)2, "tbl_name"); ++ ++ private static final java.util.Map byName = new java.util.HashMap(); ++ ++ static { ++ for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) { ++ byName.put(field.getFieldName(), field); ++ } ++ } ++ ++ /** ++ * Find the _Fields constant that matches fieldId, or null if its not found. ++ */ ++ @org.apache.thrift.annotation.Nullable ++ public static _Fields findByThriftId(int fieldId) { ++ switch(fieldId) { ++ case 1: // DBNAME ++ return DBNAME; ++ case 2: // TBL_NAME ++ return TBL_NAME; ++ default: ++ return null; ++ } ++ } ++ ++ /** ++ * Find the _Fields constant that matches fieldId, throwing an exception ++ * if it is not found. ++ */ ++ public static _Fields findByThriftIdOrThrow(int fieldId) { ++ _Fields fields = findByThriftId(fieldId); ++ if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!"); ++ return fields; ++ } ++ ++ /** ++ * Find the _Fields constant that matches name, or null if its not found. ++ */ ++ @org.apache.thrift.annotation.Nullable ++ public static _Fields findByName(java.lang.String name) { ++ return byName.get(name); ++ } ++ ++ private final short _thriftId; ++ private final java.lang.String _fieldName; ++ ++ _Fields(short thriftId, java.lang.String fieldName) { ++ _thriftId = thriftId; ++ _fieldName = fieldName; ++ } ++ ++ public short getThriftFieldId() { ++ return _thriftId; ++ } ++ ++ public java.lang.String getFieldName() { ++ return _fieldName; ++ } ++ } ++ ++ // isset id assignments ++ public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; ++ static { ++ java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); ++ tmpMap.put(_Fields.DBNAME, new org.apache.thrift.meta_data.FieldMetaData("dbname", org.apache.thrift.TFieldRequirementType.DEFAULT, ++ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); ++ tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, ++ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); ++ metaDataMap = java.util.Collections.unmodifiableMap(tmpMap); ++ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_args.class, metaDataMap); ++ } ++ ++ public get_table_args() { ++ } ++ ++ public get_table_args( ++ java.lang.String dbname, ++ java.lang.String tbl_name) ++ { ++ this(); ++ this.dbname = dbname; ++ this.tbl_name = tbl_name; ++ } ++ ++ /** ++ * Performs a deep copy on other. ++ */ ++ public get_table_args(get_table_args other) { ++ if (other.isSetDbname()) { ++ this.dbname = other.dbname; ++ } ++ if (other.isSetTbl_name()) { ++ this.tbl_name = other.tbl_name; ++ } ++ } ++ ++ public get_table_args deepCopy() { ++ return new get_table_args(this); ++ } ++ ++ @Override ++ public void clear() { ++ this.dbname = null; ++ this.tbl_name = null; ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public java.lang.String getDbname() { ++ return this.dbname; ++ } ++ ++ public void setDbname(@org.apache.thrift.annotation.Nullable java.lang.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; ++ } ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public java.lang.String getTbl_name() { ++ return this.tbl_name; ++ } ++ ++ public void setTbl_name(@org.apache.thrift.annotation.Nullable java.lang.String tbl_name) { ++ this.tbl_name = tbl_name; ++ } ++ ++ public void unsetTbl_name() { ++ this.tbl_name = null; ++ } ++ ++ /** Returns true if field tbl_name is set (has been assigned a value) and false otherwise */ ++ public boolean isSetTbl_name() { ++ return this.tbl_name != null; ++ } ++ ++ public void setTbl_nameIsSet(boolean value) { ++ if (!value) { ++ this.tbl_name = null; ++ } ++ } ++ ++ public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) { ++ switch (field) { ++ case DBNAME: ++ if (value == null) { ++ unsetDbname(); ++ } else { ++ setDbname((java.lang.String)value); ++ } ++ break; ++ ++ case TBL_NAME: ++ if (value == null) { ++ unsetTbl_name(); ++ } else { ++ setTbl_name((java.lang.String)value); ++ } ++ break; ++ ++ } ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public java.lang.Object getFieldValue(_Fields field) { ++ switch (field) { ++ case DBNAME: ++ return getDbname(); ++ ++ case TBL_NAME: ++ return getTbl_name(); ++ ++ } ++ throw new java.lang.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 java.lang.IllegalArgumentException(); ++ } ++ ++ switch (field) { ++ case DBNAME: ++ return isSetDbname(); ++ case TBL_NAME: ++ return isSetTbl_name(); ++ } ++ throw new java.lang.IllegalStateException(); ++ } ++ ++ @Override ++ public boolean equals(java.lang.Object that) { ++ if (that instanceof get_table_args) ++ return this.equals((get_table_args)that); ++ return false; ++ } ++ ++ public boolean equals(get_table_args that) { ++ if (that == null) ++ return false; ++ if (this == that) ++ return true; ++ ++ 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_tbl_name = true && this.isSetTbl_name(); ++ boolean that_present_tbl_name = true && that.isSetTbl_name(); ++ if (this_present_tbl_name || that_present_tbl_name) { ++ if (!(this_present_tbl_name && that_present_tbl_name)) ++ return false; ++ if (!this.tbl_name.equals(that.tbl_name)) ++ return false; ++ } ++ ++ return true; ++ } ++ ++ @Override ++ public int hashCode() { ++ int hashCode = 1; ++ ++ hashCode = hashCode * 8191 + ((isSetDbname()) ? 131071 : 524287); ++ if (isSetDbname()) ++ hashCode = hashCode * 8191 + dbname.hashCode(); ++ ++ hashCode = hashCode * 8191 + ((isSetTbl_name()) ? 131071 : 524287); ++ if (isSetTbl_name()) ++ hashCode = hashCode * 8191 + tbl_name.hashCode(); ++ ++ return hashCode; ++ } ++ ++ @Override ++ public int compareTo(get_table_args other) { ++ if (!getClass().equals(other.getClass())) { ++ return getClass().getName().compareTo(other.getClass().getName()); ++ } ++ ++ int lastComparison = 0; ++ ++ lastComparison = java.lang.Boolean.compare(isSetDbname(), other.isSetDbname()); ++ if (lastComparison != 0) { ++ return lastComparison; ++ } ++ if (isSetDbname()) { ++ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbname, other.dbname); ++ if (lastComparison != 0) { ++ return lastComparison; ++ } ++ } ++ lastComparison = java.lang.Boolean.compare(isSetTbl_name(), other.isSetTbl_name()); ++ if (lastComparison != 0) { ++ return lastComparison; ++ } ++ if (isSetTbl_name()) { ++ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_name, other.tbl_name); ++ if (lastComparison != 0) { ++ return lastComparison; ++ } ++ } ++ return 0; ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public _Fields fieldForId(int fieldId) { ++ return _Fields.findByThriftId(fieldId); ++ } ++ ++ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { ++ scheme(iprot).read(iprot, this); ++ } ++ ++ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { ++ scheme(oprot).write(oprot, this); ++ } ++ ++ @Override ++ public java.lang.String toString() { ++ java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_args("); ++ boolean first = true; ++ ++ sb.append("dbname:"); ++ if (this.dbname == null) { ++ sb.append("null"); ++ } else { ++ sb.append(this.dbname); ++ } ++ first = false; ++ if (!first) sb.append(", "); ++ sb.append("tbl_name:"); ++ if (this.tbl_name == null) { ++ sb.append("null"); ++ } else { ++ sb.append(this.tbl_name); ++ } ++ first = false; ++ 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, java.lang.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 get_table_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory { ++ public get_table_argsStandardScheme getScheme() { ++ return new get_table_argsStandardScheme(); ++ } ++ } ++ ++ private static class get_table_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme { ++ ++ public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_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: // DBNAME ++ 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 2: // TBL_NAME ++ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { ++ struct.tbl_name = iprot.readString(); ++ struct.setTbl_nameIsSet(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, get_table_args struct) throws org.apache.thrift.TException { ++ struct.validate(); ++ ++ oprot.writeStructBegin(STRUCT_DESC); ++ if (struct.dbname != null) { ++ oprot.writeFieldBegin(DBNAME_FIELD_DESC); ++ oprot.writeString(struct.dbname); ++ oprot.writeFieldEnd(); ++ } ++ if (struct.tbl_name != null) { ++ oprot.writeFieldBegin(TBL_NAME_FIELD_DESC); ++ oprot.writeString(struct.tbl_name); ++ oprot.writeFieldEnd(); ++ } ++ oprot.writeFieldStop(); ++ oprot.writeStructEnd(); ++ } ++ ++ } ++ ++ private static class get_table_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory { ++ public get_table_argsTupleScheme getScheme() { ++ return new get_table_argsTupleScheme(); ++ } ++ } ++ ++ private static class get_table_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme { ++ ++ @Override ++ public void write(org.apache.thrift.protocol.TProtocol prot, get_table_args struct) throws org.apache.thrift.TException { ++ org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot; ++ java.util.BitSet optionals = new java.util.BitSet(); ++ if (struct.isSetDbname()) { ++ optionals.set(0); ++ } ++ if (struct.isSetTbl_name()) { ++ optionals.set(1); ++ } ++ oprot.writeBitSet(optionals, 2); ++ if (struct.isSetDbname()) { ++ oprot.writeString(struct.dbname); ++ } ++ if (struct.isSetTbl_name()) { ++ oprot.writeString(struct.tbl_name); ++ } ++ } ++ ++ @Override ++ public void read(org.apache.thrift.protocol.TProtocol prot, get_table_args struct) throws org.apache.thrift.TException { ++ org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot; ++ java.util.BitSet incoming = iprot.readBitSet(2); ++ if (incoming.get(0)) { ++ struct.dbname = iprot.readString(); ++ struct.setDbnameIsSet(true); ++ } ++ if (incoming.get(1)) { ++ struct.tbl_name = iprot.readString(); ++ struct.setTbl_nameIsSet(true); ++ } ++ } ++ } ++ ++ private static S scheme(org.apache.thrift.protocol.TProtocol proto) { ++ return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme(); ++ } ++ } ++ ++ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { ++ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_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 org.apache.thrift.protocol.TField O1_FIELD_DESC = new org.apache.thrift.protocol.TField("o1", org.apache.thrift.protocol.TType.STRUCT, (short)1); ++ private static final org.apache.thrift.protocol.TField O2_FIELD_DESC = new org.apache.thrift.protocol.TField("o2", org.apache.thrift.protocol.TType.STRUCT, (short)2); ++ ++ private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_resultStandardSchemeFactory(); ++ private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_resultTupleSchemeFactory(); ++ ++ private @org.apache.thrift.annotation.Nullable Table success; // required ++ private @org.apache.thrift.annotation.Nullable MetaException o1; // required ++ private @org.apache.thrift.annotation.Nullable NoSuchObjectException o2; // 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"), ++ O1((short)1, "o1"), ++ O2((short)2, "o2"); ++ ++ private static final java.util.Map byName = new java.util.HashMap(); ++ ++ static { ++ for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) { ++ byName.put(field.getFieldName(), field); ++ } ++ } ++ ++ /** ++ * Find the _Fields constant that matches fieldId, or null if its not found. ++ */ ++ @org.apache.thrift.annotation.Nullable ++ public static _Fields findByThriftId(int fieldId) { ++ switch(fieldId) { ++ case 0: // SUCCESS ++ return SUCCESS; ++ case 1: // O1 ++ return O1; ++ case 2: // O2 ++ return O2; ++ 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 java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!"); ++ return fields; ++ } ++ ++ /** ++ * Find the _Fields constant that matches name, or null if its not found. ++ */ ++ @org.apache.thrift.annotation.Nullable ++ public static _Fields findByName(java.lang.String name) { ++ return byName.get(name); ++ } ++ ++ private final short _thriftId; ++ private final java.lang.String _fieldName; ++ ++ _Fields(short thriftId, java.lang.String fieldName) { ++ _thriftId = thriftId; ++ _fieldName = fieldName; ++ } ++ ++ public short getThriftFieldId() { ++ return _thriftId; ++ } ++ ++ public java.lang.String getFieldName() { ++ return _fieldName; ++ } ++ } ++ ++ // isset id assignments ++ public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; ++ static { ++ java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.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, Table.class))); ++ tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, ++ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class))); ++ tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, ++ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class))); ++ metaDataMap = java.util.Collections.unmodifiableMap(tmpMap); ++ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_result.class, metaDataMap); ++ } ++ ++ public get_table_result() { ++ } ++ ++ public get_table_result( ++ Table success, ++ MetaException o1, ++ NoSuchObjectException o2) ++ { ++ this(); ++ this.success = success; ++ this.o1 = o1; ++ this.o2 = o2; ++ } ++ ++ /** ++ * Performs a deep copy on other. ++ */ ++ public get_table_result(get_table_result other) { ++ if (other.isSetSuccess()) { ++ this.success = new Table(other.success); ++ } ++ if (other.isSetO1()) { ++ this.o1 = new MetaException(other.o1); ++ } ++ if (other.isSetO2()) { ++ this.o2 = new NoSuchObjectException(other.o2); ++ } ++ } ++ ++ public get_table_result deepCopy() { ++ return new get_table_result(this); ++ } ++ ++ @Override ++ public void clear() { ++ this.success = null; ++ this.o1 = null; ++ this.o2 = null; ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public Table getSuccess() { ++ return this.success; ++ } ++ ++ public void setSuccess(@org.apache.thrift.annotation.Nullable Table 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; ++ } ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public MetaException getO1() { ++ return this.o1; ++ } ++ ++ public void setO1(@org.apache.thrift.annotation.Nullable MetaException o1) { ++ this.o1 = o1; ++ } ++ ++ public void unsetO1() { ++ this.o1 = null; ++ } ++ ++ /** Returns true if field o1 is set (has been assigned a value) and false otherwise */ ++ public boolean isSetO1() { ++ return this.o1 != null; ++ } ++ ++ public void setO1IsSet(boolean value) { ++ if (!value) { ++ this.o1 = null; ++ } ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public NoSuchObjectException getO2() { ++ return this.o2; ++ } ++ ++ public void setO2(@org.apache.thrift.annotation.Nullable NoSuchObjectException o2) { ++ this.o2 = o2; ++ } ++ ++ public void unsetO2() { ++ this.o2 = null; ++ } ++ ++ /** Returns true if field o2 is set (has been assigned a value) and false otherwise */ ++ public boolean isSetO2() { ++ return this.o2 != null; ++ } ++ ++ public void setO2IsSet(boolean value) { ++ if (!value) { ++ this.o2 = null; ++ } ++ } ++ ++ public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) { ++ switch (field) { ++ case SUCCESS: ++ if (value == null) { ++ unsetSuccess(); ++ } else { ++ setSuccess((Table)value); ++ } ++ break; ++ ++ case O1: ++ if (value == null) { ++ unsetO1(); ++ } else { ++ setO1((MetaException)value); ++ } ++ break; ++ ++ case O2: ++ if (value == null) { ++ unsetO2(); ++ } else { ++ setO2((NoSuchObjectException)value); ++ } ++ break; ++ ++ } ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public java.lang.Object getFieldValue(_Fields field) { ++ switch (field) { ++ case SUCCESS: ++ return getSuccess(); ++ ++ case O1: ++ return getO1(); ++ ++ case O2: ++ return getO2(); ++ ++ } ++ throw new java.lang.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 java.lang.IllegalArgumentException(); ++ } ++ ++ switch (field) { ++ case SUCCESS: ++ return isSetSuccess(); ++ case O1: ++ return isSetO1(); ++ case O2: ++ return isSetO2(); ++ } ++ throw new java.lang.IllegalStateException(); ++ } ++ ++ @Override ++ public boolean equals(java.lang.Object that) { ++ if (that instanceof get_table_result) ++ return this.equals((get_table_result)that); ++ return false; ++ } ++ ++ public boolean equals(get_table_result that) { ++ if (that == null) ++ return false; ++ if (this == that) ++ return true; ++ ++ 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; ++ } ++ ++ boolean this_present_o1 = true && this.isSetO1(); ++ boolean that_present_o1 = true && that.isSetO1(); ++ if (this_present_o1 || that_present_o1) { ++ if (!(this_present_o1 && that_present_o1)) ++ return false; ++ if (!this.o1.equals(that.o1)) ++ return false; ++ } ++ ++ boolean this_present_o2 = true && this.isSetO2(); ++ boolean that_present_o2 = true && that.isSetO2(); ++ if (this_present_o2 || that_present_o2) { ++ if (!(this_present_o2 && that_present_o2)) ++ return false; ++ if (!this.o2.equals(that.o2)) ++ return false; ++ } ++ ++ return true; ++ } ++ ++ @Override ++ public int hashCode() { ++ int hashCode = 1; ++ ++ hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287); ++ if (isSetSuccess()) ++ hashCode = hashCode * 8191 + success.hashCode(); ++ ++ hashCode = hashCode * 8191 + ((isSetO1()) ? 131071 : 524287); ++ if (isSetO1()) ++ hashCode = hashCode * 8191 + o1.hashCode(); ++ ++ hashCode = hashCode * 8191 + ((isSetO2()) ? 131071 : 524287); ++ if (isSetO2()) ++ hashCode = hashCode * 8191 + o2.hashCode(); ++ ++ return hashCode; ++ } ++ ++ @Override ++ public int compareTo(get_table_result other) { ++ if (!getClass().equals(other.getClass())) { ++ return getClass().getName().compareTo(other.getClass().getName()); ++ } ++ ++ int lastComparison = 0; ++ ++ lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess()); ++ if (lastComparison != 0) { ++ return lastComparison; ++ } ++ if (isSetSuccess()) { ++ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success); ++ if (lastComparison != 0) { ++ return lastComparison; ++ } ++ } ++ lastComparison = java.lang.Boolean.compare(isSetO1(), other.isSetO1()); ++ if (lastComparison != 0) { ++ return lastComparison; ++ } ++ if (isSetO1()) { ++ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o1, other.o1); ++ if (lastComparison != 0) { ++ return lastComparison; ++ } ++ } ++ lastComparison = java.lang.Boolean.compare(isSetO2(), other.isSetO2()); ++ if (lastComparison != 0) { ++ return lastComparison; ++ } ++ if (isSetO2()) { ++ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.o2, other.o2); ++ if (lastComparison != 0) { ++ return lastComparison; ++ } ++ } ++ return 0; ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public _Fields fieldForId(int fieldId) { ++ return _Fields.findByThriftId(fieldId); ++ } ++ ++ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { ++ scheme(iprot).read(iprot, this); ++ } ++ ++ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { ++ scheme(oprot).write(oprot, this); ++ } ++ ++ @Override ++ public java.lang.String toString() { ++ java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_result("); ++ boolean first = true; ++ ++ sb.append("success:"); ++ if (this.success == null) { ++ sb.append("null"); ++ } else { ++ sb.append(this.success); ++ } ++ first = false; ++ if (!first) sb.append(", "); ++ sb.append("o1:"); ++ if (this.o1 == null) { ++ sb.append("null"); ++ } else { ++ sb.append(this.o1); ++ } ++ first = false; ++ if (!first) sb.append(", "); ++ sb.append("o2:"); ++ if (this.o2 == null) { ++ sb.append("null"); ++ } else { ++ sb.append(this.o2); ++ } ++ 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, java.lang.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 get_table_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory { ++ public get_table_resultStandardScheme getScheme() { ++ return new get_table_resultStandardScheme(); ++ } ++ } ++ ++ private static class get_table_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme { ++ ++ public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_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 Table(); ++ struct.success.read(iprot); ++ struct.setSuccessIsSet(true); ++ } else { ++ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); ++ } ++ break; ++ case 1: // O1 ++ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { ++ struct.o1 = new MetaException(); ++ struct.o1.read(iprot); ++ struct.setO1IsSet(true); ++ } else { ++ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); ++ } ++ break; ++ case 2: // O2 ++ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { ++ struct.o2 = new NoSuchObjectException(); ++ struct.o2.read(iprot); ++ struct.setO2IsSet(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, get_table_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(); ++ } ++ if (struct.o1 != null) { ++ oprot.writeFieldBegin(O1_FIELD_DESC); ++ struct.o1.write(oprot); ++ oprot.writeFieldEnd(); ++ } ++ if (struct.o2 != null) { ++ oprot.writeFieldBegin(O2_FIELD_DESC); ++ struct.o2.write(oprot); ++ oprot.writeFieldEnd(); ++ } ++ oprot.writeFieldStop(); ++ oprot.writeStructEnd(); ++ } ++ ++ } ++ ++ private static class get_table_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory { ++ public get_table_resultTupleScheme getScheme() { ++ return new get_table_resultTupleScheme(); ++ } ++ } ++ ++ private static class get_table_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme { ++ ++ @Override ++ public void write(org.apache.thrift.protocol.TProtocol prot, get_table_result struct) throws org.apache.thrift.TException { ++ org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot; ++ java.util.BitSet optionals = new java.util.BitSet(); ++ if (struct.isSetSuccess()) { ++ optionals.set(0); ++ } ++ if (struct.isSetO1()) { ++ optionals.set(1); ++ } ++ if (struct.isSetO2()) { ++ optionals.set(2); ++ } ++ oprot.writeBitSet(optionals, 3); ++ if (struct.isSetSuccess()) { ++ struct.success.write(oprot); ++ } ++ if (struct.isSetO1()) { ++ struct.o1.write(oprot); ++ } ++ if (struct.isSetO2()) { ++ struct.o2.write(oprot); ++ } ++ } ++ ++ @Override ++ public void read(org.apache.thrift.protocol.TProtocol prot, get_table_result struct) throws org.apache.thrift.TException { ++ org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot; ++ java.util.BitSet incoming = iprot.readBitSet(3); ++ if (incoming.get(0)) { ++ struct.success = new Table(); ++ struct.success.read(iprot); ++ struct.setSuccessIsSet(true); ++ } ++ if (incoming.get(1)) { ++ struct.o1 = new MetaException(); ++ struct.o1.read(iprot); ++ struct.setO1IsSet(true); ++ } ++ if (incoming.get(2)) { ++ struct.o2 = new NoSuchObjectException(); ++ struct.o2.read(iprot); ++ struct.setO2IsSet(true); ++ } ++ } ++ } ++ ++ private static S scheme(org.apache.thrift.protocol.TProtocol proto) { ++ return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme(); ++ } ++ } ++ ++ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_objects_by_name_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { ++ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_objects_by_name_args"); ++ ++ private static final org.apache.thrift.protocol.TField DBNAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbname", org.apache.thrift.protocol.TType.STRING, (short)1); ++ private static final org.apache.thrift.protocol.TField TBL_NAMES_FIELD_DESC = new org.apache.thrift.protocol.TField("tbl_names", org.apache.thrift.protocol.TType.LIST, (short)2); ++ ++ private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_objects_by_name_argsStandardSchemeFactory(); ++ private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_objects_by_name_argsTupleSchemeFactory(); ++ ++ private @org.apache.thrift.annotation.Nullable java.lang.String dbname; // required ++ private @org.apache.thrift.annotation.Nullable java.util.List tbl_names; // 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 { ++ DBNAME((short)1, "dbname"), ++ TBL_NAMES((short)2, "tbl_names"); ++ ++ private static final java.util.Map byName = new java.util.HashMap(); ++ ++ static { ++ for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) { ++ byName.put(field.getFieldName(), field); ++ } ++ } ++ ++ /** ++ * Find the _Fields constant that matches fieldId, or null if its not found. ++ */ ++ @org.apache.thrift.annotation.Nullable ++ public static _Fields findByThriftId(int fieldId) { ++ switch(fieldId) { ++ case 1: // DBNAME ++ return DBNAME; ++ case 2: // TBL_NAMES ++ return TBL_NAMES; ++ 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 java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!"); ++ return fields; ++ } ++ ++ /** ++ * Find the _Fields constant that matches name, or null if its not found. ++ */ ++ @org.apache.thrift.annotation.Nullable ++ public static _Fields findByName(java.lang.String name) { ++ return byName.get(name); ++ } ++ ++ private final short _thriftId; ++ private final java.lang.String _fieldName; ++ ++ _Fields(short thriftId, java.lang.String fieldName) { ++ _thriftId = thriftId; ++ _fieldName = fieldName; ++ } ++ ++ public short getThriftFieldId() { ++ return _thriftId; ++ } ++ ++ public java.lang.String getFieldName() { ++ return _fieldName; ++ } ++ } ++ ++ // isset id assignments ++ public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; ++ static { ++ java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); ++ tmpMap.put(_Fields.DBNAME, new org.apache.thrift.meta_data.FieldMetaData("dbname", org.apache.thrift.TFieldRequirementType.DEFAULT, ++ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); ++ tmpMap.put(_Fields.TBL_NAMES, new org.apache.thrift.meta_data.FieldMetaData("tbl_names", org.apache.thrift.TFieldRequirementType.DEFAULT, ++ new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, ++ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)))); ++ metaDataMap = java.util.Collections.unmodifiableMap(tmpMap); ++ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_objects_by_name_args.class, metaDataMap); ++ } ++ ++ public get_table_objects_by_name_args() { ++ } ++ ++ public get_table_objects_by_name_args( ++ java.lang.String dbname, ++ java.util.List tbl_names) ++ { ++ this(); ++ this.dbname = dbname; ++ this.tbl_names = tbl_names; ++ } ++ ++ /** ++ * Performs a deep copy on other. ++ */ ++ public get_table_objects_by_name_args(get_table_objects_by_name_args other) { ++ if (other.isSetDbname()) { ++ this.dbname = other.dbname; ++ } ++ if (other.isSetTbl_names()) { ++ java.util.List __this__tbl_names = new java.util.ArrayList(other.tbl_names); ++ this.tbl_names = __this__tbl_names; ++ } ++ } ++ ++ public get_table_objects_by_name_args deepCopy() { ++ return new get_table_objects_by_name_args(this); ++ } ++ ++ @Override ++ public void clear() { ++ this.dbname = null; ++ this.tbl_names = null; ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public java.lang.String getDbname() { ++ return this.dbname; ++ } ++ ++ public void setDbname(@org.apache.thrift.annotation.Nullable java.lang.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 int getTbl_namesSize() { ++ return (this.tbl_names == null) ? 0 : this.tbl_names.size(); ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public java.util.Iterator getTbl_namesIterator() { ++ return (this.tbl_names == null) ? null : this.tbl_names.iterator(); ++ } ++ ++ public void addToTbl_names(java.lang.String elem) { ++ if (this.tbl_names == null) { ++ this.tbl_names = new java.util.ArrayList(); ++ } ++ this.tbl_names.add(elem); ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public java.util.List getTbl_names() { ++ return this.tbl_names; ++ } ++ ++ public void setTbl_names(@org.apache.thrift.annotation.Nullable java.util.List tbl_names) { ++ this.tbl_names = tbl_names; ++ } ++ ++ public void unsetTbl_names() { ++ this.tbl_names = null; ++ } ++ ++ /** Returns true if field tbl_names is set (has been assigned a value) and false otherwise */ ++ public boolean isSetTbl_names() { ++ return this.tbl_names != null; ++ } ++ ++ public void setTbl_namesIsSet(boolean value) { ++ if (!value) { ++ this.tbl_names = null; ++ } ++ } ++ ++ public void setFieldValue(_Fields field, @org.apache.thrift.annotation.Nullable java.lang.Object value) { ++ switch (field) { ++ case DBNAME: ++ if (value == null) { ++ unsetDbname(); ++ } else { ++ setDbname((java.lang.String)value); ++ } ++ break; ++ ++ case TBL_NAMES: ++ if (value == null) { ++ unsetTbl_names(); ++ } else { ++ setTbl_names((java.util.List)value); ++ } ++ break; ++ ++ } ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public java.lang.Object getFieldValue(_Fields field) { ++ switch (field) { ++ case DBNAME: ++ return getDbname(); ++ ++ case TBL_NAMES: ++ return getTbl_names(); ++ ++ } ++ throw new java.lang.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 java.lang.IllegalArgumentException(); ++ } ++ ++ switch (field) { ++ case DBNAME: ++ return isSetDbname(); ++ case TBL_NAMES: ++ return isSetTbl_names(); ++ } ++ throw new java.lang.IllegalStateException(); ++ } ++ ++ @Override ++ public boolean equals(java.lang.Object that) { ++ if (that instanceof get_table_objects_by_name_args) ++ return this.equals((get_table_objects_by_name_args)that); ++ return false; ++ } ++ ++ public boolean equals(get_table_objects_by_name_args that) { ++ if (that == null) ++ return false; ++ if (this == that) ++ return true; ++ ++ 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_tbl_names = true && this.isSetTbl_names(); ++ boolean that_present_tbl_names = true && that.isSetTbl_names(); ++ if (this_present_tbl_names || that_present_tbl_names) { ++ if (!(this_present_tbl_names && that_present_tbl_names)) ++ return false; ++ if (!this.tbl_names.equals(that.tbl_names)) ++ return false; ++ } ++ ++ return true; ++ } ++ ++ @Override ++ public int hashCode() { ++ int hashCode = 1; ++ ++ hashCode = hashCode * 8191 + ((isSetDbname()) ? 131071 : 524287); ++ if (isSetDbname()) ++ hashCode = hashCode * 8191 + dbname.hashCode(); ++ ++ hashCode = hashCode * 8191 + ((isSetTbl_names()) ? 131071 : 524287); ++ if (isSetTbl_names()) ++ hashCode = hashCode * 8191 + tbl_names.hashCode(); ++ ++ return hashCode; ++ } ++ ++ @Override ++ public int compareTo(get_table_objects_by_name_args other) { ++ if (!getClass().equals(other.getClass())) { ++ return getClass().getName().compareTo(other.getClass().getName()); ++ } ++ ++ int lastComparison = 0; ++ ++ lastComparison = java.lang.Boolean.compare(isSetDbname(), other.isSetDbname()); ++ if (lastComparison != 0) { ++ return lastComparison; ++ } ++ if (isSetDbname()) { ++ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbname, other.dbname); ++ if (lastComparison != 0) { ++ return lastComparison; ++ } ++ } ++ lastComparison = java.lang.Boolean.compare(isSetTbl_names(), other.isSetTbl_names()); ++ if (lastComparison != 0) { ++ return lastComparison; ++ } ++ if (isSetTbl_names()) { ++ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tbl_names, other.tbl_names); ++ if (lastComparison != 0) { ++ return lastComparison; ++ } ++ } ++ return 0; ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public _Fields fieldForId(int fieldId) { ++ return _Fields.findByThriftId(fieldId); ++ } ++ ++ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { ++ scheme(iprot).read(iprot, this); ++ } ++ ++ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { ++ scheme(oprot).write(oprot, this); ++ } ++ ++ @Override ++ public java.lang.String toString() { ++ java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_objects_by_name_args("); ++ boolean first = true; ++ ++ sb.append("dbname:"); ++ if (this.dbname == null) { ++ sb.append("null"); ++ } else { ++ sb.append(this.dbname); ++ } ++ first = false; ++ if (!first) sb.append(", "); ++ sb.append("tbl_names:"); ++ if (this.tbl_names == null) { ++ sb.append("null"); ++ } else { ++ sb.append(this.tbl_names); ++ } ++ first = false; ++ 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, java.lang.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 get_table_objects_by_name_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory { ++ public get_table_objects_by_name_argsStandardScheme getScheme() { ++ return new get_table_objects_by_name_argsStandardScheme(); ++ } ++ } ++ ++ private static class get_table_objects_by_name_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme { ++ ++ public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_objects_by_name_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: // DBNAME ++ 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 2: // TBL_NAMES ++ if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { ++ { ++ org.apache.thrift.protocol.TList _list2282 = iprot.readListBegin(); ++ struct.tbl_names = new java.util.ArrayList(_list2282.size); ++ @org.apache.thrift.annotation.Nullable java.lang.String _elem2283; ++ for (int _i2284 = 0; _i2284 < _list2282.size; ++_i2284) ++ { ++ _elem2283 = iprot.readString(); ++ struct.tbl_names.add(_elem2283); ++ } ++ iprot.readListEnd(); ++ } ++ struct.setTbl_namesIsSet(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, get_table_objects_by_name_args struct) throws org.apache.thrift.TException { ++ struct.validate(); ++ ++ oprot.writeStructBegin(STRUCT_DESC); ++ if (struct.dbname != null) { ++ oprot.writeFieldBegin(DBNAME_FIELD_DESC); ++ oprot.writeString(struct.dbname); ++ oprot.writeFieldEnd(); ++ } ++ if (struct.tbl_names != null) { ++ 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 (java.lang.String _iter2285 : struct.tbl_names) ++ { ++ oprot.writeString(_iter2285); ++ } ++ oprot.writeListEnd(); ++ } ++ oprot.writeFieldEnd(); ++ } ++ oprot.writeFieldStop(); ++ oprot.writeStructEnd(); ++ } ++ ++ } ++ ++ private static class get_table_objects_by_name_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory { ++ public get_table_objects_by_name_argsTupleScheme getScheme() { ++ return new get_table_objects_by_name_argsTupleScheme(); ++ } ++ } ++ ++ private static class get_table_objects_by_name_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme { ++ ++ @Override ++ public void write(org.apache.thrift.protocol.TProtocol prot, get_table_objects_by_name_args struct) throws org.apache.thrift.TException { ++ org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot; ++ java.util.BitSet optionals = new java.util.BitSet(); ++ if (struct.isSetDbname()) { ++ optionals.set(0); ++ } ++ if (struct.isSetTbl_names()) { ++ optionals.set(1); ++ } ++ oprot.writeBitSet(optionals, 2); ++ if (struct.isSetDbname()) { ++ oprot.writeString(struct.dbname); ++ } ++ if (struct.isSetTbl_names()) { ++ { ++ oprot.writeI32(struct.tbl_names.size()); ++ for (java.lang.String _iter2286 : struct.tbl_names) ++ { ++ oprot.writeString(_iter2286); ++ } ++ } ++ } ++ } ++ ++ @Override ++ public void read(org.apache.thrift.protocol.TProtocol prot, get_table_objects_by_name_args struct) throws org.apache.thrift.TException { ++ org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot; ++ java.util.BitSet incoming = iprot.readBitSet(2); ++ if (incoming.get(0)) { ++ struct.dbname = iprot.readString(); ++ struct.setDbnameIsSet(true); ++ } ++ if (incoming.get(1)) { ++ { ++ org.apache.thrift.protocol.TList _list2287 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRING); ++ struct.tbl_names = new java.util.ArrayList(_list2287.size); ++ @org.apache.thrift.annotation.Nullable java.lang.String _elem2288; ++ for (int _i2289 = 0; _i2289 < _list2287.size; ++_i2289) ++ { ++ _elem2288 = iprot.readString(); ++ struct.tbl_names.add(_elem2288); ++ } ++ } ++ struct.setTbl_namesIsSet(true); ++ } ++ } ++ } ++ ++ private static S scheme(org.apache.thrift.protocol.TProtocol proto) { ++ return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme(); ++ } ++ } ++ ++ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public static class get_table_objects_by_name_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable { ++ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_table_objects_by_name_result"); ++ ++ private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0); ++ ++ private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_table_objects_by_name_resultStandardSchemeFactory(); ++ private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_table_objects_by_name_resultTupleSchemeFactory(); ++ ++ private @org.apache.thrift.annotation.Nullable java.util.List
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 java.util.Map byName = new java.util.HashMap(); ++ ++ static { ++ for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) { ++ byName.put(field.getFieldName(), field); ++ } ++ } ++ ++ /** ++ * Find the _Fields constant that matches fieldId, or null if its not found. ++ */ ++ @org.apache.thrift.annotation.Nullable ++ 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 java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!"); ++ return fields; ++ } ++ ++ /** ++ * Find the _Fields constant that matches name, or null if its not found. ++ */ ++ @org.apache.thrift.annotation.Nullable ++ public static _Fields findByName(java.lang.String name) { ++ return byName.get(name); ++ } ++ ++ private final short _thriftId; ++ private final java.lang.String _fieldName; ++ ++ _Fields(short thriftId, java.lang.String fieldName) { ++ _thriftId = thriftId; ++ _fieldName = fieldName; ++ } ++ ++ public short getThriftFieldId() { ++ return _thriftId; ++ } ++ ++ public java.lang.String getFieldName() { ++ return _fieldName; ++ } ++ } ++ ++ // isset id assignments ++ public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; ++ static { ++ java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.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.ListMetaData(org.apache.thrift.protocol.TType.LIST, ++ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Table.class)))); ++ metaDataMap = java.util.Collections.unmodifiableMap(tmpMap); ++ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_table_objects_by_name_result.class, metaDataMap); ++ } ++ ++ public get_table_objects_by_name_result() { ++ } ++ ++ public get_table_objects_by_name_result( ++ java.util.List
success) ++ { ++ this(); ++ this.success = success; ++ } ++ ++ /** ++ * Performs a deep copy on other. ++ */ ++ public get_table_objects_by_name_result(get_table_objects_by_name_result other) { ++ if (other.isSetSuccess()) { ++ java.util.List
__this__success = new java.util.ArrayList
(other.success.size()); ++ for (Table other_element : other.success) { ++ __this__success.add(new Table(other_element)); ++ } ++ this.success = __this__success; ++ } ++ } ++ ++ public get_table_objects_by_name_result deepCopy() { ++ return new get_table_objects_by_name_result(this); ++ } ++ ++ @Override ++ public void clear() { ++ this.success = null; ++ } ++ ++ public int getSuccessSize() { ++ return (this.success == null) ? 0 : this.success.size(); ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public java.util.Iterator
getSuccessIterator() { ++ return (this.success == null) ? null : this.success.iterator(); ++ } ++ ++ public void addToSuccess(Table elem) { ++ if (this.success == null) { ++ this.success = new java.util.ArrayList
(); ++ } ++ this.success.add(elem); ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public java.util.List
getSuccess() { ++ return this.success; ++ } ++ ++ public void setSuccess(@org.apache.thrift.annotation.Nullable java.util.List
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, @org.apache.thrift.annotation.Nullable java.lang.Object value) { ++ switch (field) { ++ case SUCCESS: ++ if (value == null) { ++ unsetSuccess(); ++ } else { ++ setSuccess((java.util.List
)value); ++ } ++ break; ++ ++ } ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public java.lang.Object getFieldValue(_Fields field) { ++ switch (field) { ++ case SUCCESS: ++ return getSuccess(); ++ ++ } ++ throw new java.lang.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 java.lang.IllegalArgumentException(); ++ } ++ ++ switch (field) { ++ case SUCCESS: ++ return isSetSuccess(); ++ } ++ throw new java.lang.IllegalStateException(); ++ } ++ ++ @Override ++ public boolean equals(java.lang.Object that) { ++ if (that instanceof get_table_objects_by_name_result) ++ return this.equals((get_table_objects_by_name_result)that); ++ return false; ++ } ++ ++ public boolean equals(get_table_objects_by_name_result that) { ++ if (that == null) ++ return false; ++ if (this == that) ++ return true; ++ ++ 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() { ++ int hashCode = 1; ++ ++ hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287); ++ if (isSetSuccess()) ++ hashCode = hashCode * 8191 + success.hashCode(); ++ ++ return hashCode; ++ } ++ ++ @Override ++ public int compareTo(get_table_objects_by_name_result other) { ++ if (!getClass().equals(other.getClass())) { ++ return getClass().getName().compareTo(other.getClass().getName()); ++ } ++ ++ int lastComparison = 0; ++ ++ lastComparison = java.lang.Boolean.compare(isSetSuccess(), other.isSetSuccess()); ++ if (lastComparison != 0) { ++ return lastComparison; ++ } ++ if (isSetSuccess()) { ++ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success); ++ if (lastComparison != 0) { ++ return lastComparison; ++ } ++ } ++ return 0; ++ } ++ ++ @org.apache.thrift.annotation.Nullable ++ public _Fields fieldForId(int fieldId) { ++ return _Fields.findByThriftId(fieldId); ++ } ++ ++ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { ++ scheme(iprot).read(iprot, this); ++ } ++ ++ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { ++ scheme(oprot).write(oprot, this); ++ } ++ ++ @Override ++ public java.lang.String toString() { ++ java.lang.StringBuilder sb = new java.lang.StringBuilder("get_table_objects_by_name_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 ++ } ++ ++ 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, java.lang.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 get_table_objects_by_name_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory { ++ public get_table_objects_by_name_resultStandardScheme getScheme() { ++ return new get_table_objects_by_name_resultStandardScheme(); ++ } ++ } ++ ++ private static class get_table_objects_by_name_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme { ++ ++ public void read(org.apache.thrift.protocol.TProtocol iprot, get_table_objects_by_name_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.LIST) { ++ { ++ org.apache.thrift.protocol.TList _list2290 = iprot.readListBegin(); ++ struct.success = new java.util.ArrayList
(_list2290.size); ++ @org.apache.thrift.annotation.Nullable Table _elem2291; ++ for (int _i2292 = 0; _i2292 < _list2290.size; ++_i2292) ++ { ++ _elem2291 = new Table(); ++ _elem2291.read(iprot); ++ struct.success.add(_elem2291); ++ } ++ iprot.readListEnd(); ++ } ++ 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, get_table_objects_by_name_result struct) throws org.apache.thrift.TException { ++ struct.validate(); ++ ++ oprot.writeStructBegin(STRUCT_DESC); ++ if (struct.success != null) { ++ oprot.writeFieldBegin(SUCCESS_FIELD_DESC); ++ { ++ oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size())); ++ for (Table _iter2293 : struct.success) ++ { ++ _iter2293.write(oprot); ++ } ++ oprot.writeListEnd(); ++ } ++ oprot.writeFieldEnd(); ++ } ++ oprot.writeFieldStop(); ++ oprot.writeStructEnd(); ++ } ++ ++ } ++ ++ private static class get_table_objects_by_name_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory { ++ public get_table_objects_by_name_resultTupleScheme getScheme() { ++ return new get_table_objects_by_name_resultTupleScheme(); ++ } ++ } ++ ++ private static class get_table_objects_by_name_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme { ++ ++ @Override ++ public void write(org.apache.thrift.protocol.TProtocol prot, get_table_objects_by_name_result struct) throws org.apache.thrift.TException { ++ org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot; ++ java.util.BitSet optionals = new java.util.BitSet(); ++ if (struct.isSetSuccess()) { ++ optionals.set(0); ++ } ++ oprot.writeBitSet(optionals, 1); ++ if (struct.isSetSuccess()) { ++ { ++ oprot.writeI32(struct.success.size()); ++ for (Table _iter2294 : struct.success) ++ { ++ _iter2294.write(oprot); ++ } ++ } ++ } ++ } ++ ++ @Override ++ public void read(org.apache.thrift.protocol.TProtocol prot, get_table_objects_by_name_result struct) throws org.apache.thrift.TException { ++ org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot; ++ java.util.BitSet incoming = iprot.readBitSet(1); ++ if (incoming.get(0)) { ++ { ++ org.apache.thrift.protocol.TList _list2295 = iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT); ++ struct.success = new java.util.ArrayList
(_list2295.size); ++ @org.apache.thrift.annotation.Nullable Table _elem2296; ++ for (int _i2297 = 0; _i2297 < _list2295.size; ++_i2297) ++ { ++ _elem2296 = new Table(); ++ _elem2296.read(iprot); ++ struct.success.add(_elem2296); ++ } ++ } ++ struct.setSuccessIsSet(true); ++ } ++ } ++ } ++ ++ private static S scheme(org.apache.thrift.protocol.TProtocol proto) { ++ return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme(); ++ } ++ } ++ + } +diff --git a/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift b/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift +index 32071a087b..57fe135d13 100644 +--- a/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift ++++ b/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift +@@ -3325,6 +3325,19 @@ PartitionsResponse get_partitions_req(1:PartitionsRequest req) + void drop_package(1: DropPackageRequest request) throws (1:MetaException o1) + list get_all_write_event_info(1: GetAllWriteEventInfoRequest request) throws (1:MetaException o1) + ReplayedTxnsForPolicyResult get_replayed_txns_for_policy(1: string policyName) throws (1: MetaException o1) ++ ++ // Restored for wire compatibility with metastore clients built against Hive 2.3, ++ // which is what Spark bundles. HIVE-26537 removed these two methods in 4.0.1 as a ++ // code cleanup; the request-based variants below are their replacements and both ++ // entry points share one implementation. ++ // ++ // Appended at the end of the service block on purpose: thrift numbers its generated ++ // local variables in declaration order, so inserting these where they used to live ++ // renumbers thousands of unrelated lines in the checked-in generated sources. ++ // Dispatch is by name, so the position has no effect on the wire. ++ Table get_table(1:string dbname, 2:string tbl_name) ++ throws (1:MetaException o1, 2:NoSuchObjectException o2) ++ list
get_table_objects_by_name(1:string dbname, 2:list tbl_names) + } + + // * Note about the DDL_TIME: When creating or altering a table or a partition, +diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java +index 7ab569383a..40bbc51571 100644 +--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java ++++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java +@@ -3632,6 +3632,16 @@ public class HMSHandler extends FacebookBase implements IHMSHandler { + return extTable; + } + ++ @Override ++ @Deprecated ++ public Table get_table(final String dbname, final String name) throws MetaException, ++ NoSuchObjectException { ++ String[] parsedDbName = parseDbName(dbname, conf); ++ GetTableRequest getTableRequest = new GetTableRequest(parsedDbName[DB_NAME],name); ++ getTableRequest.setCatName(parsedDbName[CAT_NAME]); ++ return getTableInternal(getTableRequest); ++ } ++ + @Override + public GetTableResult get_table_req(GetTableRequest req) throws MetaException, + NoSuchObjectException { +@@ -3774,6 +3784,14 @@ public class HMSHandler extends FacebookBase implements IHMSHandler { + * @throws UnknownDBException + */ + ++ @Override ++ @Deprecated ++ public List
get_table_objects_by_name(final String dbName, final List tableNames) ++ throws MetaException, InvalidOperationException, UnknownDBException { ++ String[] parsedDbName = parseDbName(dbName, conf); ++ return getTableObjectsInternal(parsedDbName[CAT_NAME], parsedDbName[DB_NAME], tableNames, null, null, null); ++ } ++ + @Override + public GetTablesResult get_table_objects_by_name_req(GetTablesRequest req) throws TException { + String catName = req.isSetCatName() ? req.getCatName() : getDefaultCatalog(conf);