MCPcopy Create free account
hub / github.com/FoundationDB/fdb-document-layer / addIndex

Method addIndex

src/QLContext.actor.cpp:602–617  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

600 : self(new QueryContextData(layers, tr, path)) {}
601
602void QueryContext::addIndex(Reference<IndexInfo> index) {
603 if (index->size() == 1) {
604 self->layers = Reference<ITDoc>(new SimpleIndexPlugin(
605 self->prefix, index, Reference<IExpression>(new ExtPathExpression(index->indexKeys[0].first, true, true)),
606 self->layers));
607 } else {
608 std::vector<std::pair<Reference<IExpression>, int>> exprs(index->size());
609 std::transform(index->indexKeys.begin(), index->indexKeys.end(), exprs.begin(),
610 [](std::pair<std::string, int> index_pair) {
611 return std::make_pair(
612 Reference<IExpression>(new ExtPathExpression(index_pair.first, true, true)),
613 index_pair.second);
614 });
615 self->layers = Reference<ITDoc>(new CompoundIndexPlugin(self->prefix, index, exprs, self->layers));
616 }
617}
618
619Future<Optional<DataValue>> QueryContext::get(StringRef key) {
620 return self->get(key);

Calls 6

transformFunction · 0.85
beginMethod · 0.80
endMethod · 0.80
findMethod · 0.80
sizeMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected