void HtmlHeaderMetadataItemVisitor::visitGenerator(Generator& /*generator*/) { emptyTitles(); addSummary(); addDependencies(); addDDL(); }
void HtmlHeaderMetadataItemVisitor::visitException(Exception& /*exception*/) { emptyTitles(); addSummary(); addDependencies(); addDDL(); }
void HtmlHeaderMetadataItemVisitor::visitFunction(Function& /*function*/) { emptyTitles(); addSummary(); addDependencies(); addDDL(); }
void HtmlHeaderMetadataItemVisitor::visitTrigger(Trigger& /*trigger*/) { emptyTitles(); addSummary(); addDependencies(); addDDL(); }
void HtmlHeaderMetadataItemVisitor::visitProcedure(Procedure& /*procedure*/) { emptyTitles(); addSummary(); addPrivileges(); addDependencies(); addDDL(); }
void HtmlHeaderMetadataItemVisitor::visitView(View& /*view*/) { emptyTitles(); addSummary(); addTriggers(); addPrivileges(); addDependencies(); addDDL(); }
InstallJob *ProjectPrivate::installProducts(const QList<ResolvedProductPtr> &products, const InstallOptions &options, bool needsDepencencyResolving, QObject *jobOwner) { QList<ResolvedProductPtr> productsToInstall = products; if (needsDepencencyResolving) addDependencies(productsToInstall); InstallJob * const job = new InstallJob(logger, jobOwner); job->install(internalProject, productsToInstall, options); return job; }
void HtmlHeaderMetadataItemVisitor::visitTable(Table& /*table*/) { emptyTitles(); addSummary(); addConstraints(); addIndices(); addTriggers(); addPrivileges(); addDependencies(); addDDL(); }
TEST(InclusionProjectionExecutionTest, ShouldAddIdToDependenciesIfNotSpecified) { auto inclusion = makeInclusionProjectionWithDefaultPolicies(); inclusion.parse(BSON("a" << true)); DepsTracker deps; inclusion.addDependencies(&deps); ASSERT_EQ(deps.fields.size(), 2UL); ASSERT_EQ(deps.fields.count("_id"), 1UL); ASSERT_EQ(deps.fields.count("a"), 1UL); }
TEST(InclusionProjectionExecutionTest, ShouldAddIncludedFieldsToDependencies) { auto inclusion = makeInclusionProjectionWithDefaultPolicies(); inclusion.parse(BSON("_id" << false << "a" << true << "x.y" << true)); DepsTracker deps; inclusion.addDependencies(&deps); ASSERT_EQ(deps.fields.size(), 2UL); ASSERT_EQ(deps.fields.count("_id"), 0UL); ASSERT_EQ(deps.fields.count("a"), 1UL); ASSERT_EQ(deps.fields.count("x.y"), 1UL); }
TEST(InclusionProjectionExecutionTest, ShouldAddDependenciesOfComputedFields) { auto inclusion = makeInclusionProjectionWithDefaultPolicies(); inclusion.parse(BSON("a" << "$a" << "x" << "$z")); DepsTracker deps; inclusion.addDependencies(&deps); ASSERT_EQ(deps.fields.size(), 3UL); ASSERT_EQ(deps.fields.count("_id"), 1UL); ASSERT_EQ(deps.fields.count("a"), 1UL); ASSERT_EQ(deps.fields.count("z"), 1UL); }
TEST(InclusionProjectionExecutionTest, ShouldAddPathToDependenciesForNestedComputedFields) { auto inclusion = makeInclusionProjectionWithDefaultPolicies(); inclusion.parse(BSON("x.y" << "$z")); DepsTracker deps; inclusion.addDependencies(&deps); ASSERT_EQ(deps.fields.size(), 3UL); // Implicit "_id". ASSERT_EQ(deps.fields.count("_id"), 1UL); // Needed by the ExpressionFieldPath. ASSERT_EQ(deps.fields.count("z"), 1UL); // Needed to ensure we preserve the structure of the input document. ASSERT_EQ(deps.fields.count("x"), 1UL); }
int Project::syncDB() { if (mPendingDirtyFiles.isEmpty() && mPendingData.isEmpty()) return -1; StopWatch watch; // for (Map<uint32_t, shared_ptr<IndexData> >::iterator it = mPendingData.begin(); it != mPendingData.end(); ++it) { // writeErrorSymbols(mSymbols, mErrorSymbols, it->second->errors); // } if (!mPendingDirtyFiles.isEmpty()) { RTags::dirtySymbols(mSymbols, mPendingDirtyFiles); RTags::dirtySymbolNames(mSymbolNames, mPendingDirtyFiles); RTags::dirtyUsr(mUsr, mPendingDirtyFiles); mPendingDirtyFiles.clear(); } Set<uint32_t> newFiles; for (Map<uint32_t, shared_ptr<IndexData> >::iterator it = mPendingData.begin(); it != mPendingData.end(); ++it) { const shared_ptr<IndexData> &data = it->second; addDependencies(data->dependencies, newFiles); addFixIts(data->dependencies, data->fixIts); writeSymbols(data->symbols, mSymbols); writeUsr(data->usrMap, mUsr, mSymbols); writeReferences(data->references, mSymbols); writeSymbolNames(data->symbolNames, mSymbolNames); } for (Set<uint32_t>::const_iterator it = newFiles.begin(); it != newFiles.end(); ++it) { const Path path = Location::path(*it); const Path dir = path.parentDir(); if (dir.isEmpty()) { error() << "Got empty parent dir for" << path << *it; } else if (mWatchedPaths.insert(dir)) { mWatcher.watch(dir); } } mPendingData.clear(); if (Server::instance()->options().options & Server::Validate) { shared_ptr<ValidateDBJob> validate(new ValidateDBJob(static_pointer_cast<Project>(shared_from_this()), mPreviousErrors)); Server::instance()->startQueryJob(validate); } return watch.elapsed(); }
void ResourceListenerManager::update() { for (auto& listener : mDirtyListeners) { clearDependencies(listener); addDependencies(listener); } mDirtyListeners.clear(); { RecursiveLock lock(mMutex); for (auto& entry : mLoadedResources) sendResourceLoaded(entry.second); for (auto& entry : mModifiedResources) sendResourceModified(entry.second); mLoadedResources.clear(); mModifiedResources.clear(); } }