QueryData TablePlugin::getCache() const { VLOG(1) << "Retrieving results from cache for table: " << getName(); // Lookup results from database and deserialize. std::string content; getDatabaseValue(kQueries, "cache." + getName(), content); QueryData results; deserializeQueryDataJSON(content, results); return results; }
TEST_F(ResultsTests, test_deserialize_query_data_json) { auto results = getSerializedQueryDataJSON(); // Pull the serialized JSON back into a QueryData output container. QueryData output; auto s = deserializeQueryDataJSON(results.first, output); EXPECT_TRUE(s.ok()); // The output container should match the input query data. EXPECT_EQ(output, results.second); }
Status Query::getPreviousQueryResults(QueryDataSet& results) const { std::string raw; auto status = getDatabaseValue(kQueries, name_, raw); if (!status.ok()) { return status; } status = deserializeQueryDataJSON(raw, results); if (!status.ok()) { return status; } return Status(0, "OK"); }
Status Query::getPreviousQueryResults(QueryData& results, DBHandleRef db) { if (!isQueryNameInDatabase()) { return Status(0, "Query name not found in database"); } std::string raw; auto status = db->Get(kQueries, name_, raw); if (!status.ok()) { return status; } status = deserializeQueryDataJSON(raw, results); if (!status.ok()) { return status; } return Status(0, "OK"); }