MCPcopy Create free account
hub / github.com/documentdb/documentdb / AddNullArrayOpTerms

Function AddNullArrayOpTerms

pg_documentdb/src/opclass/bson_gin_core.c:2367–2400  ·  view source on GitHub ↗

* Term generation for $eq: null type operators that take * arrays - this covers $in and $all scenarios */

Source from the content-addressed store, hash-verified

2365 * arrays - this covers $in and $all scenarios
2366 */
2367inline static int
2368AddNullArrayOpTerms(Datum *entries, int index,
2369 DollarArrayOpQueryData *inQueryData,
2370 pgbsonelement *queryElement,
2371 IndexTermCreateMetadata *termMetadata)
2372{
2373 entries[index] = GenerateRootTerm(termMetadata);
2374 inQueryData->rootTermIndex = index;
2375 index++;
2376
2377 entries[index] = GenerateRootExistsTerm(termMetadata);
2378 inQueryData->rootExistsTermIndex = index;
2379 index++;
2380
2381 entries[index] = GenerateRootNonExistsTerm(termMetadata);
2382 inQueryData->nonExistsTermIndex = index;
2383 index++;
2384
2385 entries[index] = GenerateRootMultiKeyTerm(termMetadata);
2386 inQueryData->multiKeyTermIndex = index;
2387 index++;
2388
2389 pgbsonelement undefinedElement;
2390 undefinedElement.path = queryElement->path;
2391 undefinedElement.pathLength = queryElement->pathLength;
2392 undefinedElement.bsonValue.value_type = BSON_TYPE_UNDEFINED;
2393 BsonIndexTermSerialized serializedTerm = SerializeBsonIndexTerm(&undefinedElement,
2394 termMetadata);
2395 entries[index] = PointerGetDatum(serializedTerm.indexTermVal);
2396 inQueryData->undefinedLiteralTermIndex = index;
2397 index++;
2398
2399 return index;
2400}
2401
2402
2403/*

Callers 2

GinBsonExtractQueryInFunction · 0.85

Calls 5

GenerateRootTermFunction · 0.85
GenerateRootExistsTermFunction · 0.85
GenerateRootMultiKeyTermFunction · 0.85
SerializeBsonIndexTermFunction · 0.85

Tested by

no test coverage detected