TEST_F(VirtualTableTests, test_table_cache) { // Get a database connection. Registry::add<cacheTablePlugin>("table", "cache"); auto dbc = SQLiteDBManager::getUnique(); { auto cache = std::make_shared<cacheTablePlugin>(); attachTableInternal("cache", cache->columnDefinition(), dbc); } QueryData results; // Run a query with a join within. std::string statement = "SELECT c2.data as data FROM cache c1, cache c2;"; auto status = queryInternal(statement, results, dbc->db()); dbc->clearAffectedTables(); EXPECT_TRUE(status.ok()); ASSERT_EQ(results.size(), 1U); EXPECT_EQ(results[0]["data"], "more_awesome_data"); // Run the query again, the virtual table cache should have been expired. results.clear(); statement = "SELECT data from cache c1"; queryInternal(statement, results, dbc->db()); ASSERT_EQ(results.size(), 1U); ASSERT_EQ(results[0]["data"], "awesome_data"); }
void genWinPythonPackages(const std::string& keyGlob, QueryData& results) { #ifdef WIN32 std::set<std::string> installPathKeys; expandRegistryGlobs(keyGlob, installPathKeys); QueryData pythonInstallLocation; for (const auto& installKey : installPathKeys) { queryKey(installKey, pythonInstallLocation); for (const auto& p : pythonInstallLocation) { if (p.at("name") != "(Default)") { continue; } genSiteDirectories(p.at("data"), results); } pythonInstallLocation.clear(); } #endif }