/* Loop over fields and extract each one. */ for (;;)
{ char code = pq_getmsgbyte(msg); constchar *value;
if (code == '\0')
{
pq_getmsgend(msg); break;
}
value = pq_getmsgrawstring(msg);
switch (code)
{ case PG_DIAG_SEVERITY: /* ignore, trusting we'll get a nonlocalized version */ break; case PG_DIAG_SEVERITY_NONLOCALIZED: if (strcmp(value, "DEBUG") == 0)
{ /* *Wecan'treconstructtheexactDEBUGlevel,but *presumablyitwas>=client_min_messages,soselect *DEBUG1toensurewe'llpassitontotheclient.
*/
edata->elevel = DEBUG1;
} elseif (strcmp(value, "LOG") == 0)
{ /* *Itcan'tbeLOG_SERVER_ONLY,ortheworkerwouldn't *havesentittous;soLOGisthecorrectvalue.
*/
edata->elevel = LOG;
} elseif (strcmp(value, "INFO") == 0)
edata->elevel = INFO; elseif (strcmp(value, "NOTICE") == 0)
edata->elevel = NOTICE; elseif (strcmp(value, "WARNING") == 0)
edata->elevel = WARNING; elseif (strcmp(value, "ERROR") == 0)
edata->elevel = ERROR; elseif (strcmp(value, "FATAL") == 0)
edata->elevel = FATAL; elseif (strcmp(value, "PANIC") == 0)
edata->elevel = PANIC; else
elog(ERROR, "unrecognized error severity: \"%s\"", value); break; case PG_DIAG_SQLSTATE: if (strlen(value) != 5)
elog(ERROR, "invalid SQLSTATE: \"%s\"", value);
edata->sqlerrcode = MAKE_SQLSTATE(value[0], value[1], value[2],
value[3], value[4]); break; case PG_DIAG_MESSAGE_PRIMARY:
edata->message = pstrdup(value); break; case PG_DIAG_MESSAGE_DETAIL:
edata->detail = pstrdup(value); break; case PG_DIAG_MESSAGE_HINT:
edata->hint = pstrdup(value); break; case PG_DIAG_STATEMENT_POSITION:
edata->cursorpos = pg_strtoint32(value); break; case PG_DIAG_INTERNAL_POSITION:
edata->internalpos = pg_strtoint32(value); break; case PG_DIAG_INTERNAL_QUERY:
edata->internalquery = pstrdup(value); break; case PG_DIAG_CONTEXT:
edata->context = pstrdup(value); break; case PG_DIAG_SCHEMA_NAME:
edata->schema_name = pstrdup(value); break; case PG_DIAG_TABLE_NAME:
edata->table_name = pstrdup(value); break; case PG_DIAG_COLUMN_NAME:
edata->column_name = pstrdup(value); break; case PG_DIAG_DATATYPE_NAME:
edata->datatype_name = pstrdup(value); break; case PG_DIAG_CONSTRAINT_NAME:
edata->constraint_name = pstrdup(value); break; case PG_DIAG_SOURCE_FILE:
edata->filename = pstrdup(value); break; case PG_DIAG_SOURCE_LINE:
edata->lineno = pg_strtoint32(value); break; case PG_DIAG_SOURCE_FUNCTION:
edata->funcname = pstrdup(value); break; default:
elog(ERROR, "unrecognized error field code: %d", (int) code); break;
}
}
}
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.11Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-09-28)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.