Skip to content

Commit d5283d4

Browse files
henrikedinEvergreen Agent
authored andcommitted
SERVER-58612 Add Column as BSON Binary Subtype 7
1 parent 1d78606 commit d5283d4

File tree

4 files changed

+13
-0
lines changed

4 files changed

+13
-0
lines changed

src/mongo/bson/bsontypes.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,8 @@ const char* typeName(BinDataType type) {
187187
return "MD5";
188188
case Encrypt:
189189
return "encrypt";
190+
case Column:
191+
return "column";
190192
case bdtCustom:
191193
return "Custom";
192194
default:
@@ -203,6 +205,7 @@ bool isValidBinDataType(int type) {
203205
case newUUID:
204206
case MD5Type:
205207
case Encrypt:
208+
case Column:
206209
case bdtCustom:
207210
return true;
208211
default:

src/mongo/bson/bsontypes.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ enum BinDataType {
193193
newUUID = 4, /* language-independent UUID format across all drivers */
194194
MD5Type = 5,
195195
Encrypt = 6, /* encryption placeholder or encrypted data */
196+
Column = 7, /* compressed column */
196197
bdtCustom = 128
197198
};
198199

src/mongo/db/matcher/expression_type_test.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,14 @@ TEST(ExpressionBinDataSubTypeTest, MatchesBinDataEncryptType) {
257257
ASSERT_FALSE(type.matchesSingleElement(notMatch["a"]));
258258
}
259259

260+
TEST(ExpressionBinDataSubTypeTest, MatchesBinDataColumnType) {
261+
BSONObj match = BSON("a" << BSONBinData(nullptr, 0, BinDataType::Column));
262+
BSONObj notMatch = BSON("a" << BSONBinData(nullptr, 0, BinDataType::newUUID));
263+
InternalSchemaBinDataSubTypeExpression type("", BinDataType::Column);
264+
ASSERT_TRUE(type.matchesSingleElement(match["a"]));
265+
ASSERT_FALSE(type.matchesSingleElement(notMatch["a"]));
266+
}
267+
260268
TEST(ExpressionBinDataSubTypeTest, MatchesBinDataBdtCustom) {
261269
BSONObj match = BSON("a" << BSONBinData(nullptr, 0, BinDataType::bdtCustom));
262270
BSONObj notMatch = BSON("a" << BSONBinData(nullptr, 0, BinDataType::Function));

src/mongo/dbtests/jsontests.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -834,6 +834,7 @@ TEST(FromJsonTest, BinDataTypes) {
834834
{0x04, newUUID},
835835
{0x05, MD5Type},
836836
{0x06, Encrypt},
837+
{0x07, Column},
837838
{0x80, bdtCustom},
838839
};
839840
for (const auto& ts : specs) {

0 commit comments

Comments
 (0)