* Term generation for $eq: null type operators that take * arrays - this covers $in and $all scenarios */
| 2365 | * arrays - this covers $in and $all scenarios |
| 2366 | */ |
| 2367 | inline static int |
| 2368 | AddNullArrayOpTerms(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 | /* |
no test coverage detected