DescribeSQLSamplesResult.cc 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  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/oceanbasepro/model/DescribeSQLSamplesResult.h>
  17. #include <json/json.h>
  18. using namespace AlibabaCloud::OceanBasePro;
  19. using namespace AlibabaCloud::OceanBasePro::Model;
  20. DescribeSQLSamplesResult::DescribeSQLSamplesResult() :
  21. ServiceResult()
  22. {}
  23. DescribeSQLSamplesResult::DescribeSQLSamplesResult(const std::string &payload) :
  24. ServiceResult()
  25. {
  26. parse(payload);
  27. }
  28. DescribeSQLSamplesResult::~DescribeSQLSamplesResult()
  29. {}
  30. void DescribeSQLSamplesResult::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 allDataNode = value["Data"]["DataItem"];
  37. for (auto valueDataDataItem : allDataNode)
  38. {
  39. DataItem dataObject;
  40. if(!valueDataDataItem["RequestId"].isNull())
  41. dataObject.requestId = std::stol(valueDataDataItem["RequestId"].asString());
  42. if(!valueDataDataItem["TraceId"].isNull())
  43. dataObject.traceId = valueDataDataItem["TraceId"].asString();
  44. if(!valueDataDataItem["RequestTime"].isNull())
  45. dataObject.requestTime = valueDataDataItem["RequestTime"].asString();
  46. if(!valueDataDataItem["Server"].isNull())
  47. dataObject.server = valueDataDataItem["Server"].asString();
  48. if(!valueDataDataItem["ClientIp"].isNull())
  49. dataObject.clientIp = valueDataDataItem["ClientIp"].asString();
  50. if(!valueDataDataItem["ClientPort"].isNull())
  51. dataObject.clientPort = std::stoi(valueDataDataItem["ClientPort"].asString());
  52. if(!valueDataDataItem["DbName"].isNull())
  53. dataObject.dbName = valueDataDataItem["DbName"].asString();
  54. if(!valueDataDataItem["UserName"].isNull())
  55. dataObject.userName = valueDataDataItem["UserName"].asString();
  56. if(!valueDataDataItem["SqlType"].isNull())
  57. dataObject.sqlType = valueDataDataItem["SqlType"].asString();
  58. if(!valueDataDataItem["PlanId"].isNull())
  59. dataObject.planId = std::stol(valueDataDataItem["PlanId"].asString());
  60. if(!valueDataDataItem["AffectedRows"].isNull())
  61. dataObject.affectedRows = std::stol(valueDataDataItem["AffectedRows"].asString());
  62. if(!valueDataDataItem["ReturnRows"].isNull())
  63. dataObject.returnRows = std::stol(valueDataDataItem["ReturnRows"].asString());
  64. if(!valueDataDataItem["PartitionCount"].isNull())
  65. dataObject.partitionCount = std::stol(valueDataDataItem["PartitionCount"].asString());
  66. if(!valueDataDataItem["RetCode"].isNull())
  67. dataObject.retCode = std::stoi(valueDataDataItem["RetCode"].asString());
  68. if(!valueDataDataItem["WaitEvent"].isNull())
  69. dataObject.waitEvent = valueDataDataItem["WaitEvent"].asString();
  70. if(!valueDataDataItem["WaitTime"].isNull())
  71. dataObject.waitTime = valueDataDataItem["WaitTime"].asString();
  72. if(!valueDataDataItem["WaitCount"].isNull())
  73. dataObject.waitCount = std::stol(valueDataDataItem["WaitCount"].asString());
  74. if(!valueDataDataItem["RpcCount"].isNull())
  75. dataObject.rpcCount = std::stol(valueDataDataItem["RpcCount"].asString());
  76. if(!valueDataDataItem["PlanType"].isNull())
  77. dataObject.planType = valueDataDataItem["PlanType"].asString();
  78. if(!valueDataDataItem["Inner"].isNull())
  79. dataObject.inner = valueDataDataItem["Inner"].asString() == "true";
  80. if(!valueDataDataItem["ExecutorRpc"].isNull())
  81. dataObject.executorRpc = valueDataDataItem["ExecutorRpc"].asString() == "true";
  82. if(!valueDataDataItem["HitPlan"].isNull())
  83. dataObject.hitPlan = valueDataDataItem["HitPlan"].asString() == "true";
  84. if(!valueDataDataItem["ElapsedTime"].isNull())
  85. dataObject.elapsedTime = valueDataDataItem["ElapsedTime"].asString();
  86. if(!valueDataDataItem["CpuTime"].isNull())
  87. dataObject.cpuTime = valueDataDataItem["CpuTime"].asString();
  88. if(!valueDataDataItem["NetTime"].isNull())
  89. dataObject.netTime = valueDataDataItem["NetTime"].asString();
  90. if(!valueDataDataItem["NetWaitTime"].isNull())
  91. dataObject.netWaitTime = valueDataDataItem["NetWaitTime"].asString();
  92. if(!valueDataDataItem["QueueTime"].isNull())
  93. dataObject.queueTime = valueDataDataItem["QueueTime"].asString();
  94. if(!valueDataDataItem["DecodeTime"].isNull())
  95. dataObject.decodeTime = valueDataDataItem["DecodeTime"].asString();
  96. if(!valueDataDataItem["GetPlanTime"].isNull())
  97. dataObject.getPlanTime = valueDataDataItem["GetPlanTime"].asString();
  98. if(!valueDataDataItem["ExecuteTime"].isNull())
  99. dataObject.executeTime = valueDataDataItem["ExecuteTime"].asString();
  100. if(!valueDataDataItem["ApplicationWaitTime"].isNull())
  101. dataObject.applicationWaitTime = valueDataDataItem["ApplicationWaitTime"].asString();
  102. if(!valueDataDataItem["ConcurrencyWaitTime"].isNull())
  103. dataObject.concurrencyWaitTime = valueDataDataItem["ConcurrencyWaitTime"].asString();
  104. if(!valueDataDataItem["UserIoWaitTime"].isNull())
  105. dataObject.userIoWaitTime = valueDataDataItem["UserIoWaitTime"].asString();
  106. if(!valueDataDataItem["ScheduleTime"].isNull())
  107. dataObject.scheduleTime = valueDataDataItem["ScheduleTime"].asString();
  108. if(!valueDataDataItem["RowCacheHit"].isNull())
  109. dataObject.rowCacheHit = valueDataDataItem["RowCacheHit"].asString();
  110. if(!valueDataDataItem["BloomFilterCacheHit"].isNull())
  111. dataObject.bloomFilterCacheHit = valueDataDataItem["BloomFilterCacheHit"].asString();
  112. if(!valueDataDataItem["BlockCacheHit"].isNull())
  113. dataObject.blockCacheHit = valueDataDataItem["BlockCacheHit"].asString();
  114. if(!valueDataDataItem["BlockIndexCacheHit"].isNull())
  115. dataObject.blockIndexCacheHit = valueDataDataItem["BlockIndexCacheHit"].asString();
  116. if(!valueDataDataItem["DiskReads"].isNull())
  117. dataObject.diskReads = valueDataDataItem["DiskReads"].asString();
  118. if(!valueDataDataItem["RetryCount"].isNull())
  119. dataObject.retryCount = std::stol(valueDataDataItem["RetryCount"].asString());
  120. if(!valueDataDataItem["TableScan"].isNull())
  121. dataObject.tableScan = valueDataDataItem["TableScan"].asString() == "true";
  122. if(!valueDataDataItem["ConsistencyLevel"].isNull())
  123. dataObject.consistencyLevel = valueDataDataItem["ConsistencyLevel"].asString();
  124. if(!valueDataDataItem["MemstoreReadRows"].isNull())
  125. dataObject.memstoreReadRows = std::stol(valueDataDataItem["MemstoreReadRows"].asString());
  126. if(!valueDataDataItem["ExpectedWorkerCount"].isNull())
  127. dataObject.expectedWorkerCount = std::stol(valueDataDataItem["ExpectedWorkerCount"].asString());
  128. if(!valueDataDataItem["UsedWorkerCount"].isNull())
  129. dataObject.usedWorkerCount = std::stol(valueDataDataItem["UsedWorkerCount"].asString());
  130. if(!valueDataDataItem["SsstoreReadRows"].isNull())
  131. dataObject.ssstoreReadRows = std::stol(valueDataDataItem["SsstoreReadRows"].asString());
  132. if(!valueDataDataItem["ObServerId"].isNull())
  133. dataObject.obServerId = std::stol(valueDataDataItem["ObServerId"].asString());
  134. if(!valueDataDataItem["ObUserId"].isNull())
  135. dataObject.obUserId = std::stol(valueDataDataItem["ObUserId"].asString());
  136. if(!valueDataDataItem["ObDbId"].isNull())
  137. dataObject.obDbId = std::stol(valueDataDataItem["ObDbId"].asString());
  138. if(!valueDataDataItem["Statement"].isNull())
  139. dataObject.statement = valueDataDataItem["Statement"].asString();
  140. if(!valueDataDataItem["TransHash"].isNull())
  141. dataObject.transHash = valueDataDataItem["TransHash"].asString();
  142. if(!valueDataDataItem["FullSqlText"].isNull())
  143. dataObject.fullSqlText = valueDataDataItem["FullSqlText"].asString();
  144. if(!valueDataDataItem["SqlText"].isNull())
  145. dataObject.sqlText = valueDataDataItem["SqlText"].asString();
  146. if(!valueDataDataItem["ParamsValue"].isNull())
  147. dataObject.paramsValue = valueDataDataItem["ParamsValue"].asString();
  148. if(!valueDataDataItem["SqlId"].isNull())
  149. dataObject.sqlId = valueDataDataItem["SqlId"].asString();
  150. if(!valueDataDataItem["SqlTextShort"].isNull())
  151. dataObject.sqlTextShort = valueDataDataItem["SqlTextShort"].asString();
  152. data_.push_back(dataObject);
  153. }
  154. }
  155. std::vector<DescribeSQLSamplesResult::DataItem> DescribeSQLSamplesResult::getData()const
  156. {
  157. return data_;
  158. }