summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/sbe/values/value.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/exec/sbe/values/value.cpp')
-rw-r--r--src/mongo/db/exec/sbe/values/value.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mongo/db/exec/sbe/values/value.cpp b/src/mongo/db/exec/sbe/values/value.cpp
index 0e2e19d08a5..8c7de0f1b8e 100644
--- a/src/mongo/db/exec/sbe/values/value.cpp
+++ b/src/mongo/db/exec/sbe/values/value.cpp
@@ -243,6 +243,11 @@ std::pair<TypeTags, Value> makeCopySortSpec(const SortSpec& ss) {
return {TypeTags::sortSpec, ssCopy};
}
+std::pair<TypeTags, Value> makeCopyCollator(const CollatorInterface& collator) {
+ auto collatorCopy = bitcastFrom<CollatorInterface*>(collator.clone().release());
+ return {TypeTags::collator, collatorCopy};
+}
+
std::pair<TypeTags, Value> makeNewRecordId(int64_t rid) {
auto val = bitcastFrom<RecordId*>(new RecordId(rid));
return {TypeTags::RecordId, val};
@@ -311,6 +316,9 @@ void releaseValue(TypeTags tag, Value val) noexcept {
case TypeTags::sortSpec:
delete getSortSpecView(val);
break;
+ case TypeTags::collator:
+ delete getCollatorView(val);
+ break;
default:
break;
}