| 435 | |
| 436 | |
| 437 | static void |
| 438 | ValidateShardKey(const pgbson *shardKeyDoc) |
| 439 | { |
| 440 | bson_iter_t shardKeyIterator; |
| 441 | PgbsonInitIterator(shardKeyDoc, &shardKeyIterator); |
| 442 | |
| 443 | while (bson_iter_next(&shardKeyIterator)) |
| 444 | { |
| 445 | const bson_value_t *value = bson_iter_value(&shardKeyIterator); |
| 446 | |
| 447 | if (value->value_type == BSON_TYPE_UTF8) |
| 448 | { |
| 449 | if (strcmp("hashed", value->value.v_utf8.str) != 0) |
| 450 | { |
| 451 | ereport(ERROR, (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), |
| 452 | errmsg("Shard key value provided is invalid: %s", |
| 453 | value->value.v_utf8.str))); |
| 454 | } |
| 455 | } |
| 456 | else |
| 457 | { |
| 458 | ereport(ERROR, (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), |
| 459 | errmsg("only shard keys that use hashed are supported"))); |
| 460 | } |
| 461 | } |
| 462 | } |
| 463 | |
| 464 | |
| 465 | static void |
no test coverage detected