[ https://issues.apache.org/jira/browse/HIVE-20929?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
weizheng updated HIVE-20929: ---------------------------- Description: When I use the getValidWriteIds(String fullTableName) method of HiveMetaStoreClient to get writeIds, I get the errors: {noformat} Exception in thread "main" org.apache.thrift.protocol.TProtocolException: Required field 'validTxnList' is unset! Struct:GetValidWriteIdsRequest(fullTableNames:[default.w2], validTxnList:null) at org.apache.hadoop.hive.metastore.api.GetValidWriteIdsRequest.validate(GetValidWriteIdsRequest.java:396) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args.validate(ThriftHiveMetastore.java) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args$get_valid_write_ids_argsStandardScheme.write(ThriftHiveMetastore.java) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args$get_valid_write_ids_argsStandardScheme.write(ThriftHiveMetastore.java) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args.write(ThriftHiveMetastore.java) at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:71) at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:62) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.send_get_valid_write_ids(ThriftHiveMetastore.java:5443) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.get_valid_write_ids(ThriftHiveMetastore.java:5435) at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getValidWriteIds(HiveMetaStoreClient.java:2581) at com.inspur.mutation.test.TableOperate.getRowsMap(TableOperate.java:521) at com.inspur.procuder.GenerateData.main(GenerateData.java:65) {noformat} So I can only use the following methods instead: {code:java} //get writeIds ValidTxnList txns = metaStoreClient.getValidTxns(); ValidWriteIdList writeIds; List<String> tablesList = new ArrayList<String>(); tablesList.add(AcidUtils.getFullTableName(table.getDbName(), table.getTableName())); List<TableValidWriteIds> writeIdList = metaStoreClient.getValidWriteIds(tablesList,txns.toString()); writeIds = TxnUtils.createValidReaderWriteIdList(writeIdList.get(0)); {code} was: When I use the getValidWriteIds(String fullTableName) method of HiveMetaStoreClient to get writeIds, I get the errors: Exception in thread "main" org.apache.thrift.protocol.TProtocolException: Required field 'validTxnList' is unset! Struct:GetValidWriteIdsRequest(fullTableNames:[default.w2], validTxnList:null) at org.apache.hadoop.hive.metastore.api.GetValidWriteIdsRequest.validate(GetValidWriteIdsRequest.java:396) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args.validate(ThriftHiveMetastore.java) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args$get_valid_write_ids_argsStandardScheme.write(ThriftHiveMetastore.java) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args$get_valid_write_ids_argsStandardScheme.write(ThriftHiveMetastore.java) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args.write(ThriftHiveMetastore.java) at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:71) at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:62) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.send_get_valid_write_ids(ThriftHiveMetastore.java:5443) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.get_valid_write_ids(ThriftHiveMetastore.java:5435) at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getValidWriteIds(HiveMetaStoreClient.java:2581) at com.inspur.mutation.test.TableOperate.getRowsMap(TableOperate.java:521) at com.inspur.procuder.GenerateData.main(GenerateData.java:65) So I can only use the following methods instead: ValidWriteIdList writeIds; tablesList.add(AcidUtils.getFullTableName(table.getDbName(), table.getTableName())); List<TableValidWriteIds> writeIdList = metaStoreClient.getValidWriteIds(tablesList,txns.toString()); writeIds = TxnUtils.createValidReaderWriteIdList(writeIdList.get(0)); > The method HiveMetaStoreClient.getValidWriteIds(String fullTableName) failed > to execute. > ---------------------------------------------------------------------------------------- > > Key: HIVE-20929 > URL: https://issues.apache.org/jira/browse/HIVE-20929 > Project: Hive > Issue Type: Bug > Components: Standalone Metastore > Affects Versions: 3.1.0 > Environment: hadoop3.1.0 > hive3.1.0 > Reporter: weizheng > Assignee: weizheng > Priority: Major > > When I use the getValidWriteIds(String fullTableName) method of > HiveMetaStoreClient to get writeIds, I get the errors: > {noformat} > Exception in thread "main" org.apache.thrift.protocol.TProtocolException: > Required field 'validTxnList' is unset! > Struct:GetValidWriteIdsRequest(fullTableNames:[default.w2], validTxnList:null) > at > org.apache.hadoop.hive.metastore.api.GetValidWriteIdsRequest.validate(GetValidWriteIdsRequest.java:396) > at > org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args.validate(ThriftHiveMetastore.java) > at > org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args$get_valid_write_ids_argsStandardScheme.write(ThriftHiveMetastore.java) > at > org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args$get_valid_write_ids_argsStandardScheme.write(ThriftHiveMetastore.java) > at > org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_valid_write_ids_args.write(ThriftHiveMetastore.java) > at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:71) > at org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:62) > at > org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.send_get_valid_write_ids(ThriftHiveMetastore.java:5443) > at > org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.get_valid_write_ids(ThriftHiveMetastore.java:5435) > at > org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getValidWriteIds(HiveMetaStoreClient.java:2581) > at com.inspur.mutation.test.TableOperate.getRowsMap(TableOperate.java:521) > at com.inspur.procuder.GenerateData.main(GenerateData.java:65) > {noformat} > So I can only use the following methods instead: > {code:java} > //get writeIds > ValidTxnList txns = metaStoreClient.getValidTxns(); > ValidWriteIdList writeIds; > List<String> tablesList = new ArrayList<String>(); > tablesList.add(AcidUtils.getFullTableName(table.getDbName(), > table.getTableName())); > List<TableValidWriteIds> writeIdList = > metaStoreClient.getValidWriteIds(tablesList,txns.toString()); > writeIds = TxnUtils.createValidReaderWriteIdList(writeIdList.get(0)); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)