Translate ENOMEM to ERRCODE_OUT_OF_MEMORY in errcode_for_file_access().
authorTom Lane <[email protected]>
Fri, 2 Feb 2024 20:34:29 +0000 (15:34 -0500)
committerTom Lane <[email protected]>
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 2db3e32cb8f4c0af4466bd8add266260a813f440..59a61ac832e7d43e219d55778c207064e85dd1e6 100644 (file)
@@ -672,6 +672,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;