| 463 | |
| 464 | |
| 465 | static void |
| 466 | InitShardKeyMetadata(pgbson *shardKeyBson, ShardKeyMetadata *shardKeyMetadata) |
| 467 | { |
| 468 | int shardKeyCount = PgbsonCountKeys(shardKeyBson); |
| 469 | shardKeyMetadata->fieldCount = shardKeyCount; |
| 470 | shardKeyMetadata->fields = palloc(shardKeyCount * sizeof(const char *)); |
| 471 | |
| 472 | /* build array of shard key field names */ |
| 473 | bson_iter_t shardKeyIter; |
| 474 | PgbsonInitIterator(shardKeyBson, &shardKeyIter); |
| 475 | |
| 476 | for (int fieldIndex = 0; bson_iter_next(&shardKeyIter); fieldIndex++) |
| 477 | { |
| 478 | shardKeyMetadata->fields[fieldIndex] = bson_iter_key(&shardKeyIter); |
| 479 | } |
| 480 | } |
| 481 | |
| 482 | |
| 483 | /* |
no test coverage detected