From 2d8ef5e24fd3d38ffc2379ca32eaeef8c9eee1a7 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Mon, 22 Jul 2024 09:28:01 +0900 Subject: Add new error code for "file name too long" This new error code, named file_name_too_long, maps internally to the errno ENAMETOOLONG to produce a proper error code rather than an internal code under errcode_for_file_access(). This error code can be reached with some SQL command patterns, like a snapshot file name. Reported-by: Alexander Lakhin Reviewed-by: Daniel Gustafsson Discussion: https://postgr.es/m/Zo4ROR9mgy8bowMo@paquier.xyz --- src/backend/utils/error/elog.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/backend/utils/error') diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index 3e42f5754fe..479e312ba72 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -929,6 +929,10 @@ errcode_for_file_access(void) edata->sqlerrcode = ERRCODE_IO_ERROR; break; + case ENAMETOOLONG: /* File name too long */ + edata->sqlerrcode = ERRCODE_FILE_NAME_TOO_LONG; + break; + /* All else is classified as internal errors */ default: edata->sqlerrcode = ERRCODE_INTERNAL_ERROR; -- cgit v1.2.3