ListTableVersionsResult.cc 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. /*
  2. * Copyright 2009-2017 Alibaba Cloud All rights reserved.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #include <alibabacloud/datalake/model/ListTableVersionsResult.h>
  17. #include <json/json.h>
  18. using namespace AlibabaCloud::DataLake;
  19. using namespace AlibabaCloud::DataLake::Model;
  20. ListTableVersionsResult::ListTableVersionsResult() :
  21. ServiceResult()
  22. {}
  23. ListTableVersionsResult::ListTableVersionsResult(const std::string &payload) :
  24. ServiceResult()
  25. {
  26. parse(payload);
  27. }
  28. ListTableVersionsResult::~ListTableVersionsResult()
  29. {}
  30. void ListTableVersionsResult::parse(const std::string &payload)
  31. {
  32. Json::Reader reader;
  33. Json::Value value;
  34. reader.parse(payload, value);
  35. setRequestId(value["RequestId"].asString());
  36. auto allTableVersionsNode = value["TableVersions"]["TableVersionsItem"];
  37. for (auto valueTableVersionsTableVersionsItem : allTableVersionsNode)
  38. {
  39. TableVersionsItem tableVersionsObject;
  40. if(!valueTableVersionsTableVersionsItem["VersionId"].isNull())
  41. tableVersionsObject.versionId = std::stoi(valueTableVersionsTableVersionsItem["VersionId"].asString());
  42. auto tableNode = value["Table"];
  43. if(!tableNode["Cascade"].isNull())
  44. tableVersionsObject.table.cascade = tableNode["Cascade"].asString() == "true";
  45. if(!tableNode["CreateTime"].isNull())
  46. tableVersionsObject.table.createTime = std::stoi(tableNode["CreateTime"].asString());
  47. if(!tableNode["CreatedBy"].isNull())
  48. tableVersionsObject.table.createdBy = tableNode["CreatedBy"].asString();
  49. if(!tableNode["DatabaseName"].isNull())
  50. tableVersionsObject.table.databaseName = tableNode["DatabaseName"].asString();
  51. if(!tableNode["LastAccessTime"].isNull())
  52. tableVersionsObject.table.lastAccessTime = std::stoi(tableNode["LastAccessTime"].asString());
  53. if(!tableNode["LastAnalyzedTime"].isNull())
  54. tableVersionsObject.table.lastAnalyzedTime = std::stoi(tableNode["LastAnalyzedTime"].asString());
  55. if(!tableNode["Owner"].isNull())
  56. tableVersionsObject.table.owner = tableNode["Owner"].asString();
  57. if(!tableNode["OwnerType"].isNull())
  58. tableVersionsObject.table.ownerType = tableNode["OwnerType"].asString();
  59. if(!tableNode["Parameters"].isNull())
  60. tableVersionsObject.table.parameters = tableNode["Parameters"].asString();
  61. if(!tableNode["Retention"].isNull())
  62. tableVersionsObject.table.retention = std::stoi(tableNode["Retention"].asString());
  63. if(!tableNode["RewriteEnabled"].isNull())
  64. tableVersionsObject.table.rewriteEnabled = tableNode["RewriteEnabled"].asString() == "true";
  65. if(!tableNode["TableName"].isNull())
  66. tableVersionsObject.table.tableName = tableNode["TableName"].asString();
  67. if(!tableNode["TableType"].isNull())
  68. tableVersionsObject.table.tableType = tableNode["TableType"].asString();
  69. if(!tableNode["Temporary"].isNull())
  70. tableVersionsObject.table.temporary = tableNode["Temporary"].asString() == "true";
  71. if(!tableNode["UpdateTime"].isNull())
  72. tableVersionsObject.table.updateTime = std::stoi(tableNode["UpdateTime"].asString());
  73. if(!tableNode["ViewExpandedText"].isNull())
  74. tableVersionsObject.table.viewExpandedText = tableNode["ViewExpandedText"].asString();
  75. if(!tableNode["ViewOriginalText"].isNull())
  76. tableVersionsObject.table.viewOriginalText = tableNode["ViewOriginalText"].asString();
  77. if(!tableNode["TableId"].isNull())
  78. tableVersionsObject.table.tableId = tableNode["TableId"].asString();
  79. if(!tableNode["TableVersion"].isNull())
  80. tableVersionsObject.table.tableVersion = tableNode["TableVersion"].asString();
  81. auto allPartitionKeysNode = tableNode["PartitionKeys"]["PartitionKeysItem"];
  82. for (auto tableNodePartitionKeysPartitionKeysItem : allPartitionKeysNode)
  83. {
  84. TableVersionsItem::Table::PartitionKeysItem partitionKeysItemObject;
  85. if(!tableNodePartitionKeysPartitionKeysItem["Comment"].isNull())
  86. partitionKeysItemObject.comment = tableNodePartitionKeysPartitionKeysItem["Comment"].asString();
  87. if(!tableNodePartitionKeysPartitionKeysItem["Name"].isNull())
  88. partitionKeysItemObject.name = tableNodePartitionKeysPartitionKeysItem["Name"].asString();
  89. if(!tableNodePartitionKeysPartitionKeysItem["Parameters"].isNull())
  90. partitionKeysItemObject.parameters = tableNodePartitionKeysPartitionKeysItem["Parameters"].asString();
  91. if(!tableNodePartitionKeysPartitionKeysItem["Type"].isNull())
  92. partitionKeysItemObject.type = tableNodePartitionKeysPartitionKeysItem["Type"].asString();
  93. tableVersionsObject.table.partitionKeys.push_back(partitionKeysItemObject);
  94. }
  95. auto privilegesNode = tableNode["Privileges"];
  96. if(!privilegesNode["GroupPrivileges"].isNull())
  97. tableVersionsObject.table.privileges.groupPrivileges = privilegesNode["GroupPrivileges"].asString();
  98. if(!privilegesNode["RolePrivileges"].isNull())
  99. tableVersionsObject.table.privileges.rolePrivileges = privilegesNode["RolePrivileges"].asString();
  100. if(!privilegesNode["UserPrivileges"].isNull())
  101. tableVersionsObject.table.privileges.userPrivileges = privilegesNode["UserPrivileges"].asString();
  102. auto sdNode = tableNode["Sd"];
  103. if(!sdNode["Compressed"].isNull())
  104. tableVersionsObject.table.sd.compressed = sdNode["Compressed"].asString() == "true";
  105. if(!sdNode["InputFormat"].isNull())
  106. tableVersionsObject.table.sd.inputFormat = sdNode["InputFormat"].asString();
  107. if(!sdNode["Location"].isNull())
  108. tableVersionsObject.table.sd.location = sdNode["Location"].asString();
  109. if(!sdNode["NumBuckets"].isNull())
  110. tableVersionsObject.table.sd.numBuckets = std::stoi(sdNode["NumBuckets"].asString());
  111. if(!sdNode["OutputFormat"].isNull())
  112. tableVersionsObject.table.sd.outputFormat = sdNode["OutputFormat"].asString();
  113. if(!sdNode["Parameters"].isNull())
  114. tableVersionsObject.table.sd.parameters = sdNode["Parameters"].asString();
  115. if(!sdNode["StoredAsSubDirectories"].isNull())
  116. tableVersionsObject.table.sd.storedAsSubDirectories = sdNode["StoredAsSubDirectories"].asString() == "true";
  117. auto allColsNode = sdNode["Cols"]["ColsItem"];
  118. for (auto sdNodeColsColsItem : allColsNode)
  119. {
  120. TableVersionsItem::Table::Sd::ColsItem colsItemObject;
  121. if(!sdNodeColsColsItem["Comment"].isNull())
  122. colsItemObject.comment = sdNodeColsColsItem["Comment"].asString();
  123. if(!sdNodeColsColsItem["Name"].isNull())
  124. colsItemObject.name = sdNodeColsColsItem["Name"].asString();
  125. if(!sdNodeColsColsItem["Parameters"].isNull())
  126. colsItemObject.parameters = sdNodeColsColsItem["Parameters"].asString();
  127. if(!sdNodeColsColsItem["Type"].isNull())
  128. colsItemObject.type = sdNodeColsColsItem["Type"].asString();
  129. tableVersionsObject.table.sd.cols.push_back(colsItemObject);
  130. }
  131. auto allSortColsNode = sdNode["SortCols"]["SortColsItem"];
  132. for (auto sdNodeSortColsSortColsItem : allSortColsNode)
  133. {
  134. TableVersionsItem::Table::Sd::SortColsItem sortColsItemObject;
  135. if(!sdNodeSortColsSortColsItem["Col"].isNull())
  136. sortColsItemObject.col = sdNodeSortColsSortColsItem["Col"].asString();
  137. if(!sdNodeSortColsSortColsItem["Order"].isNull())
  138. sortColsItemObject.order = std::stoi(sdNodeSortColsSortColsItem["Order"].asString());
  139. tableVersionsObject.table.sd.sortCols.push_back(sortColsItemObject);
  140. }
  141. auto serDeInfoNode = sdNode["SerDeInfo"];
  142. if(!serDeInfoNode["Name"].isNull())
  143. tableVersionsObject.table.sd.serDeInfo.name = serDeInfoNode["Name"].asString();
  144. if(!serDeInfoNode["Parameters"].isNull())
  145. tableVersionsObject.table.sd.serDeInfo.parameters = serDeInfoNode["Parameters"].asString();
  146. if(!serDeInfoNode["SerializationLib"].isNull())
  147. tableVersionsObject.table.sd.serDeInfo.serializationLib = serDeInfoNode["SerializationLib"].asString();
  148. auto skewedInfoNode = sdNode["SkewedInfo"];
  149. if(!skewedInfoNode["SkewedColValueLocationMaps"].isNull())
  150. tableVersionsObject.table.sd.skewedInfo.skewedColValueLocationMaps = skewedInfoNode["SkewedColValueLocationMaps"].asString();
  151. auto allSkewedColNames = skewedInfoNode["SkewedColNames"]["null"];
  152. for (auto value : allSkewedColNames)
  153. tableVersionsObject.table.sd.skewedInfo.skewedColNames.push_back(value.asString());
  154. auto allSkewedColValues = skewedInfoNode["SkewedColValues"]["null"];
  155. for (auto value : allSkewedColValues)
  156. tableVersionsObject.table.sd.skewedInfo.skewedColValues.push_back(value.asString());
  157. auto allBucketCols = sdNode["BucketCols"]["null"];
  158. for (auto value : allBucketCols)
  159. tableVersionsObject.table.sd.bucketCols.push_back(value.asString());
  160. tableVersions_.push_back(tableVersionsObject);
  161. }
  162. if(!value["Code"].isNull())
  163. code_ = value["Code"].asString();
  164. if(!value["Message"].isNull())
  165. message_ = value["Message"].asString();
  166. if(!value["NextPageToken"].isNull())
  167. nextPageToken_ = value["NextPageToken"].asString();
  168. if(!value["Success"].isNull())
  169. success_ = value["Success"].asString() == "true";
  170. }
  171. std::string ListTableVersionsResult::getMessage()const
  172. {
  173. return message_;
  174. }
  175. std::string ListTableVersionsResult::getNextPageToken()const
  176. {
  177. return nextPageToken_;
  178. }
  179. std::vector<ListTableVersionsResult::TableVersionsItem> ListTableVersionsResult::getTableVersions()const
  180. {
  181. return tableVersions_;
  182. }
  183. std::string ListTableVersionsResult::getCode()const
  184. {
  185. return code_;
  186. }
  187. bool ListTableVersionsResult::getSuccess()const
  188. {
  189. return success_;
  190. }