Thread

  1. PG_DIAG_SEVERITY and a possible bug in pq_parse_errornotice()

    Jakob Egger <jakob@eggerapps.at> — 2016-08-25T15:22:38Z

    Hi,
    
    My PostgreSQL client checks the PG_DIAG_SEVERITY error field to determine the error level.
    
    However, I have now learned that this field is localized. This means that a server configured with --enable-nls might for example return the string ERREUR instead of ERROR.
    
    So if I want to determine the error level, do I need to compare against all localised variations in my app? Or is there another way?
    
    I browsed through the PostgreSQL source and discovered that pq_parse_errornotice() (in src/backend/libpq/pqmq.c) uses the same naive strcmp() approach to determine error level. This means that it will fail when the server is compiled with --enable-nls. I am not sure what the impact of this is, since I couldn't really figure out where that function is used.
    
    Best regards,
    Jakob