From d73e7c1cd31f5036a847b8a6bc3823a01cac5a77 Mon Sep 17 00:00:00 2001 From: Andrey Borodin Date: Wed, 29 Oct 2025 15:59:46 +0400 Subject: [PATCH v3 2/3] Minor suggestions to Ilmari's patch --- src/backend/utils/adt/bytea.c | 9 +++++---- src/test/regress/expected/uuid.out | 3 ++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/backend/utils/adt/bytea.c b/src/backend/utils/adt/bytea.c index ff9e46f3015..14e95031be1 100644 --- a/src/backend/utils/adt/bytea.c +++ b/src/backend/utils/adt/bytea.c @@ -1124,12 +1124,13 @@ bytea_uuid(PG_FUNCTION_ARGS) if (len != UUID_LEN) ereport(ERROR, - errcode(ERRCODE_INVALID_BINARY_REPRESENTATION), - errmsg("invalid uuid length")); + (errcode(ERRCODE_INVALID_BINARY_REPRESENTATION), + errmsg("invalid length for UUID"), + errdetail("Expected %d bytes, got %d.", UUID_LEN, len))); - uuid = (pg_uuid_t *) palloc(UUID_LEN); + uuid = (pg_uuid_t *) palloc(sizeof(pg_uuid_t)); memcpy(uuid->data, VARDATA_ANY(v), UUID_LEN); - PG_RETURN_POINTER(uuid); + PG_RETURN_UUID_P(uuid); } /* Cast uuid -> bytea; can just use uuid_send() */ diff --git a/src/test/regress/expected/uuid.out b/src/test/regress/expected/uuid.out index 4b635336606..24486084aaf 100644 --- a/src/test/regress/expected/uuid.out +++ b/src/test/regress/expected/uuid.out @@ -319,6 +319,7 @@ SELECT '\x019a2f859ced7225b99d9c55044a2563'::bytea::uuid; (1 row) SELECT '\x1234567890abcdef'::bytea::uuid; -- error -ERROR: invalid uuid length +ERROR: invalid length for UUID +DETAIL: Expected 16 bytes, got 8. -- clean up DROP TABLE guid1, guid2, guid3 CASCADE; -- 2.39.5 (Apple Git-154)