Translate ENOMEM to ERRCODE_OUT_OF_MEMORY in errcode_for_file_access().
authorTom Lane
Fri, 2 Feb 2024 20:34:29 +0000 (15:34 -0500)
committerTom Lane
Fri, 2 Feb 2024 20:34:29 +0000 (15:34 -0500)
Previously you got ERRCODE_INTERNAL_ERROR, which seems inappropriate,
especially given that we're trying to avoid emitting that in reachable
cases.

Alexander Kuzmenkov

Discussion: https://postgr.es/m/CALzhyqzgQph0BY8-hFRRGdHhF8CoqmmDHW9S=hMZ-HMzLxRqDQ@mail.gmail.com

src/backend/utils/error/elog.c

index e997d97ce4fa8af97660ddf6ba73000fadf50f5b..893f8a5b563552555b9497f23a49b706040fb725 100644 (file)
@@ -920,6 +920,10 @@ errcode_for_file_access(void)
            edata->sqlerrcode = ERRCODE_DISK_FULL;
            break;
 
+       case ENOMEM:            /* Out of memory */
+           edata->sqlerrcode = ERRCODE_OUT_OF_MEMORY;
+           break;
+
        case ENFILE:            /* File table overflow */
        case EMFILE:            /* Too many open files */
            edata->sqlerrcode = ERRCODE_INSUFFICIENT_RESOURCES;