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 6fa4f2c3424155259e109f9ddb91e7aa8e38c2b7..01066832e18f72da9499da6677b435f1a8ff022a 100644 (file)
@@ -755,6 +755,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;