Attached is a patch that makes the message strings used in elogs and ereports more consistent with the style guidelines: errdetail should begin with a capital letter and end with a period, whereas errmsg should not. Most of the corrections are for contrib/, although the patch also fixes a few mistakes in the main tree.
Barring any objections, I'll apply this tomorrow. -Neil
============================================================ *** contrib/cube/cubeparse.y 04c791d8497bb0c9f81f04640e76e4a91d526854 --- contrib/cube/cubeparse.y 28999358502ba57f55251e5e8eb43812d2dbc856 *************** *** 44,50 **** ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad cube representation"), ! errdetail("different point dimensions in (%s) and (%s)", $2, $4))); YYABORT; } --- 44,50 ---- ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad cube representation"), ! errdetail("Different point dimensions in (%s) and (%s).", $2, $4))); YYABORT; } *************** *** 52,59 **** ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad cube representation"), ! errdetail("more than %d dimensions", ! CUBE_MAX_DIM))); YYABORT; } --- 52,59 ---- ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad cube representation"), ! errdetail("A cube cannot have more than %d dimensions.", ! CUBE_MAX_DIM))); YYABORT; } *************** *** 70,76 **** ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad cube representation"), ! errdetail("different point dimensions in (%s) and (%s)", $1, $3))); YYABORT; } --- 70,76 ---- ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad cube representation"), ! errdetail("Different point dimensions in (%s) and (%s).", $1, $3))); YYABORT; } *************** *** 78,84 **** ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad cube representation"), ! errdetail("more than %d dimensions", CUBE_MAX_DIM))); YYABORT; } --- 78,84 ---- ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad cube representation"), ! errdetail("A cube cannot have more than %d dimensions.", CUBE_MAX_DIM))); YYABORT; } *************** *** 95,101 **** ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad cube representation"), ! errdetail("more than %d dimensions", CUBE_MAX_DIM))); YYABORT; } --- 95,101 ---- ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad cube representation"), ! errdetail("A cube cannot have more than %d dimensions.", CUBE_MAX_DIM))); YYABORT; } *************** *** 113,119 **** ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad cube representation"), ! errdetail("more than %d dimensions", CUBE_MAX_DIM))); YYABORT; } --- 113,119 ---- ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad cube representation"), ! errdetail("A cube cannot have more than %d dimensions.", CUBE_MAX_DIM))); YYABORT; } *************** *** 187,193 **** } ! static NDBOX * write_point_as_box(char *str, int dim) { NDBOX * bp; int i, size; --- 187,194 ---- } ! static NDBOX * ! write_point_as_box(char *str, int dim) { NDBOX * bp; int i, size; ============================================================ *** contrib/intarray/_int_gist.c 6c29534cb1f089e16ff9e19f80c2d6f7b60b9abf --- contrib/intarray/_int_gist.c 3cf1d3960f9ce049f7ea0da3c5627f1e410b26d2 *************** *** 144,150 **** PREPAREARR(r); if (ARRNELEMS(r) >= 2 * MAXNUMRANGE) ! elog(NOTICE, "Input array is too big (%d maximum allowed, %d current), use gist__intbig_ops opclass instead", 2 * MAXNUMRANGE - 1, ARRNELEMS(r)); retval = palloc(sizeof(GISTENTRY)); --- 144,150 ---- PREPAREARR(r); if (ARRNELEMS(r) >= 2 * MAXNUMRANGE) ! elog(NOTICE, "input array is too big (%d maximum allowed, %d current), use gist__intbig_ops opclass instead", 2 * MAXNUMRANGE - 1, ARRNELEMS(r)); retval = palloc(sizeof(GISTENTRY)); ============================================================ *** contrib/isbn_issn/isbn_issn.c aa2c7d2a4cb22fb75c0fb8ce46544719320c1221 --- contrib/isbn_issn/isbn_issn.c f2682aff1e2499c343478abdd30a6617fac0c2f5 *************** *** 45,72 **** isbn_in(char *str) { isbn *result; ! if (strlen(str) != 13) ! { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid ISBN: \"%s\"", str), ! errdetail("incorrect length"))); - return (NULL); - } if (isbn_sum(str) != 0) - { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid ISBN: \"%s\"", str), ! errdetail("failed checksum"))); ! return (NULL); ! } result = (isbn *) palloc(sizeof(isbn)); ! ! strncpy(result->num, str, 13); memset(result->pad, ' ', 3); return (result); } --- 45,67 ---- isbn_in(char *str) { isbn *result; + int len; ! len = strlen(str); ! if (len != 13) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid ISBN: \"%s\"", str), ! errdetail("ISBNs must be 13 characters in length."))); if (isbn_sum(str) != 0) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid ISBN: \"%s\"", str), ! errdetail("ISBN failed checksum."))); result = (isbn *) palloc(sizeof(isbn)); ! memcpy(result->num, str, len); memset(result->pad, ' ', 3); return (result); } *************** *** 239,266 **** issn_in(char *str) { issn *result; ! if (strlen(str) != 9) ! { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid ISSN: \"%s\"", str), ! errdetail("incorrect length"))); - return (NULL); - } if (issn_sum(str) != 0) - { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid ISSN: \"%s\"", str), ! errdetail("failed checksum"))); ! return (NULL); ! } result = (issn *) palloc(sizeof(issn)); ! ! strncpy(result->num, str, 9); memset(result->pad, ' ', 7); return (result); } --- 234,256 ---- issn_in(char *str) { issn *result; + int len; ! len = strlen(str); ! if (len != 9) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid ISSN: \"%s\"", str), ! errdetail("ISSNs must be 9 characters in length."))); if (issn_sum(str) != 0) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid ISSN: \"%s\"", str), ! errdetail("ISSN failed checksum."))); result = (issn *) palloc(sizeof(issn)); ! memcpy(result->num, str, len); memset(result->pad, ' ', 7); return (result); } ============================================================ *** contrib/ltree/ltree_io.c 690d56165674a354093a0eff03035627ea58f410 --- contrib/ltree/ltree_io.c 8707ace3f390f01207436f444fbcfc92a92633fa *************** *** 80,87 **** ereport(ERROR, (errcode(ERRCODE_NAME_TOO_LONG), errmsg("name of level is too long"), ! errdetail("name length is %d, must " \ ! "be < 256, in position %d", lptr->len, (int) (lptr->start - buf)))); totallen += MAXALIGN(lptr->len + LEVEL_HDRSIZE); --- 80,87 ---- ereport(ERROR, (errcode(ERRCODE_NAME_TOO_LONG), errmsg("name of level is too long"), ! errdetail("Name length is %d, must " ! "be < 256, in position %d.", lptr->len, (int) (lptr->start - buf)))); totallen += MAXALIGN(lptr->len + LEVEL_HDRSIZE); *************** *** 104,111 **** ereport(ERROR, (errcode(ERRCODE_NAME_TOO_LONG), errmsg("name of level is too long"), ! errdetail("name length is %d, must " \ ! "be < 256, in position %d", lptr->len, (int) (lptr->start - buf)))); totallen += MAXALIGN(lptr->len + LEVEL_HDRSIZE); --- 104,111 ---- ereport(ERROR, (errcode(ERRCODE_NAME_TOO_LONG), errmsg("name of level is too long"), ! errdetail("Name length is %d, must " ! "be < 256, in position %d.", lptr->len, (int) (lptr->start - buf)))); totallen += MAXALIGN(lptr->len + LEVEL_HDRSIZE); *************** *** 282,289 **** ereport(ERROR, (errcode(ERRCODE_NAME_TOO_LONG), errmsg("name of level is too long"), ! errdetail("name length is %d, must " \ ! "be < 256, in position %d", lptr->len, (int) (lptr->start - buf)))); state = LQPRS_WAITVAR; --- 282,289 ---- ereport(ERROR, (errcode(ERRCODE_NAME_TOO_LONG), errmsg("name of level is too long"), ! errdetail("Name length is %d, must " ! "be < 256, in position %d.", lptr->len, (int) (lptr->start - buf)))); state = LQPRS_WAITVAR; *************** *** 298,305 **** ereport(ERROR, (errcode(ERRCODE_NAME_TOO_LONG), errmsg("name of level is too long"), ! errdetail("name length is %d, must " \ ! "be < 256, in position %d", lptr->len, (int) (lptr->start - buf)))); state = LQPRS_WAITLEVEL; --- 298,305 ---- ereport(ERROR, (errcode(ERRCODE_NAME_TOO_LONG), errmsg("name of level is too long"), ! errdetail("Name length is %d, must " ! "be < 256, in position %d.", lptr->len, (int) (lptr->start - buf)))); state = LQPRS_WAITLEVEL; *************** *** 411,418 **** ereport(ERROR, (errcode(ERRCODE_NAME_TOO_LONG), errmsg("name of level is too long"), ! errdetail("name length is %d, must " \ ! "be < 256, in position %d", lptr->len, (int) (lptr->start - buf)))); } else if (state == LQPRS_WAITOPEN) --- 411,418 ---- ereport(ERROR, (errcode(ERRCODE_NAME_TOO_LONG), errmsg("name of level is too long"), ! errdetail("Name length is %d, must " ! "be < 256, in position %d.", lptr->len, (int) (lptr->start - buf)))); } else if (state == LQPRS_WAITOPEN) ============================================================ *** contrib/pg_trgm/trgm_gist.c c1845694b5ae245f3c875895230855cd130bd58a --- contrib/pg_trgm/trgm_gist.c 6a0ececb97ad9392d621585debf2379b85fb951f *************** *** 60,66 **** Datum gtrgm_in(PG_FUNCTION_ARGS) { ! elog(ERROR, "Not implemented"); PG_RETURN_DATUM(0); } --- 60,66 ---- Datum gtrgm_in(PG_FUNCTION_ARGS) { ! elog(ERROR, "not implemented"); PG_RETURN_DATUM(0); } *************** *** 67,73 **** Datum gtrgm_out(PG_FUNCTION_ARGS) { ! elog(ERROR, "Not implemented"); PG_RETURN_DATUM(0); } --- 67,73 ---- Datum gtrgm_out(PG_FUNCTION_ARGS) { ! elog(ERROR, "not implemented"); PG_RETURN_DATUM(0); } ============================================================ *** contrib/pg_trgm/trgm_op.c 0c43a2fddc3723f449bf892594510432e23d8098 --- contrib/pg_trgm/trgm_op.c 7f9e9275218715b403fe3b6a1b36a95af6086ce1 *************** *** 13,19 **** float4 nlimit = PG_GETARG_FLOAT4(0); if (nlimit < 0 || nlimit > 1.0) ! elog(ERROR, "Wrong limit, should be between 0 and 1"); trgm_limit = nlimit; PG_RETURN_FLOAT4(trgm_limit); } --- 13,19 ---- float4 nlimit = PG_GETARG_FLOAT4(0); if (nlimit < 0 || nlimit > 1.0) ! elog(ERROR, "wrong limit, should be between 0 and 1"); trgm_limit = nlimit; PG_RETURN_FLOAT4(trgm_limit); } ============================================================ *** contrib/tablefunc/tablefunc.c ec0ff1857e0f769090c87ad659dad5005be3721c --- contrib/tablefunc/tablefunc.c e070edbdcf67988763059627fbbf6ce736b813e1 *************** *** 894,902 **** ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("invalid return type"), ! errdetail("query-specified return " \ "tuple has %d columns but crosstab " \ ! "returns %d", tupdesc->natts, result_ncols))); /* allocate space */ values = (char **) palloc(result_ncols * sizeof(char *)); --- 894,902 ---- ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("invalid return type"), ! errdetail("Query-specified return " \ "tuple has %d columns but crosstab " \ ! "returns %d.", tupdesc->natts, result_ncols))); /* allocate space */ values = (char **) palloc(result_ncols * sizeof(char *)); *************** *** 1531,1542 **** /* check that the type of the fifth column is INT4 */ if (show_branch && show_serial && tupdesc->attrs[4]->atttypid != INT4OID) ! elog(ERROR, "Query-specified return tuple not valid for Connectby: " "fifth column must be type %s", format_type_be(INT4OID)); /* check that the type of the fifth column is INT4 */ if (!show_branch && show_serial && tupdesc->attrs[3]->atttypid != INT4OID) ! elog(ERROR, "Query-specified return tuple not valid for Connectby: " "fourth column must be type %s", format_type_be(INT4OID)); /* OK, the tupdesc is valid for our purposes */ --- 1531,1542 ---- /* check that the type of the fifth column is INT4 */ if (show_branch && show_serial && tupdesc->attrs[4]->atttypid != INT4OID) ! elog(ERROR, "query-specified return tuple not valid for Connectby: " "fifth column must be type %s", format_type_be(INT4OID)); /* check that the type of the fifth column is INT4 */ if (!show_branch && show_serial && tupdesc->attrs[3]->atttypid != INT4OID) ! elog(ERROR, "query-specified return tuple not valid for Connectby: " "fourth column must be type %s", format_type_be(INT4OID)); /* OK, the tupdesc is valid for our purposes */ ============================================================ *** contrib/tsearch2/ispell/spell.c c4e2bfebbb657ef770e6ace1066350be12d23b57 --- contrib/tsearch2/ispell/spell.c 52f749aa6fc7636c45a042988c08d7c687969537 *************** *** 869,875 **** char regerrstr[ERRSTRSIZE]; pg_regerror(err, &(Affix->reg.regex), regerrstr, ERRSTRSIZE); ! elog(ERROR, "Regex error in '%s': %s", Affix->mask, regerrstr); } Affix->compile = 0; } --- 869,875 ---- char regerrstr[ERRSTRSIZE]; pg_regerror(err, &(Affix->reg.regex), regerrstr, ERRSTRSIZE); ! elog(ERROR, "regex error in '%s': %s", Affix->mask, regerrstr); } Affix->compile = 0; } ============================================================ *** contrib/tsearch2/prs_dcfg.c b955933ad1f22aae0b9dc1c4d106e126e529aca1 --- contrib/tsearch2/prs_dcfg.c 8e5f47b17c69c967e0882c739b4c2a789baa4a9f *************** *** 74,80 **** ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("syntax error"), ! errdetail("Syntax error in position %d", (int) (ptr - VARDATA(in))))); } else if (state == CS_INKEY) --- 74,80 ---- ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("syntax error"), ! errdetail("Syntax error in position %d.", (int) (ptr - VARDATA(in))))); } else if (state == CS_INKEY) *************** *** 93,99 **** ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("syntax error"), ! errdetail("Syntax error in position %d", (int) (ptr - VARDATA(in))))); } else if (state == CS_WAITEQ) --- 93,99 ---- ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("syntax error"), ! errdetail("Syntax error in position %d.", (int) (ptr - VARDATA(in))))); } else if (state == CS_WAITEQ) *************** *** 104,110 **** ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("syntax error"), ! errdetail("Syntax error in position %d", (int) (ptr - VARDATA(in))))); } else if (state == CS_WAITVALUE) --- 104,110 ---- ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("syntax error"), ! errdetail("Syntax error in position %d.", (int) (ptr - VARDATA(in))))); } else if (state == CS_WAITVALUE) *************** *** 150,156 **** ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("syntax error"), ! errdetail("Syntax error in position %d", (int) (ptr - VARDATA(in))))); } else if (state == CS_INESC) --- 150,156 ---- ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("syntax error"), ! errdetail("Syntax error in position %d.", (int) (ptr - VARDATA(in))))); } else if (state == CS_INESC) *************** *** 161,167 **** ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad parser state"), ! errdetail("%d at position %d", state, (int) (ptr - VARDATA(in))))); ptr+=pg_mblen(ptr); } --- 161,167 ---- ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad parser state"), ! errdetail("%d at position %d.", state, (int) (ptr - VARDATA(in))))); ptr+=pg_mblen(ptr); } ============================================================ *** contrib/tsearch2/query.c 79156d009f8c676f664a429d7dba48d49cef2493 --- contrib/tsearch2/query.c 074a990e5f8057fccde994cd5c3e499166a8fd29 *************** *** 643,649 **** pfree(state.valstate.word); if (!state.num) { ! elog(NOTICE, "Query doesn't contain lexem(s)"); query = (QUERYTYPE *) palloc(HDRSIZEQT); query->len = HDRSIZEQT; query->size = 0; --- 643,649 ---- pfree(state.valstate.word); if (!state.num) { ! elog(NOTICE, "query doesn't contain lexem(s)"); query = (QUERYTYPE *) palloc(HDRSIZEQT); query->len = HDRSIZEQT; query->size = 0; ============================================================ *** contrib/tsearch2/query_cleanup.c 7a53b7f982f88c5266a15593cae6e35635b2e223 --- contrib/tsearch2/query_cleanup.c b4346801c13c8a903031b1cbc0329a49440f57d2 *************** *** 246,252 **** resroot = clean_fakeval_intree(root, &result); if (result != V_UNKNOWN) { ! elog(NOTICE, "Query contains only stopword(s) or doesn't contain lexem(s), ignored"); *len = 0; return NULL; } --- 246,252 ---- resroot = clean_fakeval_intree(root, &result); if (result != V_UNKNOWN) { ! elog(NOTICE, "query contains only stopword(s) or doesn't contain lexem(s), ignored"); *len = 0; return NULL; } ============================================================ *** contrib/tsearch2/query_gist.c 7cbf289f9530e1cf8b2d17b534e5fcf4a6bd6a8c --- contrib/tsearch2/query_gist.c 83c5344822dcf0d2ba969125b563d4e9bcc0654e *************** *** 138,144 **** Datum gtsq_in(PG_FUNCTION_ARGS) { ! elog(ERROR, "Not implemented"); PG_RETURN_DATUM(0); } --- 138,144 ---- Datum gtsq_in(PG_FUNCTION_ARGS) { ! elog(ERROR, "not implemented"); PG_RETURN_DATUM(0); } *************** *** 145,151 **** Datum gtsq_out(PG_FUNCTION_ARGS) { ! elog(ERROR, "Not implemented"); PG_RETURN_DATUM(0); } --- 145,151 ---- Datum gtsq_out(PG_FUNCTION_ARGS) { ! elog(ERROR, "not implemented"); PG_RETURN_DATUM(0); } ============================================================ *** contrib/tsearch2/query_rewrite.c 7903de0a5082c96a585accd41dc551361a8a8b9d --- contrib/tsearch2/query_rewrite.c 9f5c698adac470be52fd89bf048b9937c0c742ce *************** *** 220,226 **** if (SPI_processed < 0) /* internal error */ ! elog(ERROR, "There is no tsvector type"); tsqOid = DatumGetObjectId(SPI_getbinval(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1, &isnull)); if (tsqOid == InvalidOid) /* internal error */ --- 220,226 ---- if (SPI_processed < 0) /* internal error */ ! elog(ERROR, "there is no tsvector type"); tsqOid = DatumGetObjectId(SPI_getbinval(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1, &isnull)); if (tsqOid == InvalidOid) /* internal error */ ============================================================ *** contrib/tsearch2/rewrite.c ea2fc8d8a6405346f63f8a529e65551786e792f3 --- contrib/tsearch2/rewrite.c d50512cae1daebd62a934cd273566c91e6ae2041 *************** *** 250,256 **** resroot = clean_fakeval_intree(root, &result); if (result != V_UNKNOWN) { ! elog(NOTICE, "Query contains only stopword(s) or doesn't contain lexem(s), ignored"); *len = 0; return NULL; } --- 250,256 ---- resroot = clean_fakeval_intree(root, &result); if (result != V_UNKNOWN) { ! elog(NOTICE, "query contains only stopword(s) or doesn't contain lexem(s), ignored"); *len = 0; return NULL; } ============================================================ *** contrib/tsearch2/ts_stat.c 2775c7a7f0a35cea82d1a03ea9d38941399013c1 --- contrib/tsearch2/ts_stat.c a41efa02cc69e8d578b155bf4221612bde5d12f9 *************** *** 426,432 **** if (SPI_processed < 1) /* internal error */ ! elog(ERROR, "There is no tsvector type"); tiOid = DatumGetObjectId(SPI_getbinval(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1, &isnull)); if (tiOid == InvalidOid) /* internal error */ --- 426,432 ---- if (SPI_processed < 1) /* internal error */ ! elog(ERROR, "there is no tsvector type"); tiOid = DatumGetObjectId(SPI_getbinval(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1, &isnull)); if (tiOid == InvalidOid) /* internal error */ ============================================================ *** contrib/xml2/xpath.c 20bc45f075a2db3b7aa8bcb43dea7f656d9effbc --- contrib/xml2/xpath.c 33431d690cd771b9011c538bbd06ae814adf2cea *************** *** 600,606 **** break; default: ! elog(NOTICE, "Unsupported XQuery result: %d", res->type); xpresstr = xmlStrdup("<unsupported/>"); } --- 600,606 ---- break; default: ! elog(NOTICE, "unsupported XQuery result: %d", res->type); xpresstr = xmlStrdup("<unsupported/>"); } *************** *** 781,788 **** if (spi_tupdesc->natts != 2) { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), ! errmsg("Expression returning multiple columns is not valid in parameter list"), ! errdetail("Expected two columns in SPI result, got %d", spi_tupdesc->natts))); } /* Setup the parser. Beware that this must happen in the same context as the --- 781,788 ---- if (spi_tupdesc->natts != 2) { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), ! errmsg("expression returning multiple columns is not valid in parameter list"), ! errdetail("Expected two columns in SPI result, got %d.", spi_tupdesc->natts))); } /* Setup the parser. Beware that this must happen in the same context as the *************** *** 890,896 **** break; default: ! elog(NOTICE, "Unsupported XQuery result: %d", res->type); resstr = xmlStrdup("<unsupported/>"); } --- 890,896 ---- break; default: ! elog(NOTICE, "unsupported XQuery result: %d", res->type); resstr = xmlStrdup("<unsupported/>"); } ============================================================ *** contrib/xml2/xslt_proc.c a33ed068704963b8ac623819b48253958ab3c56e --- contrib/xml2/xslt_proc.c 65ea4959e35918c856af2f24a3dd3e93073fe393 *************** *** 81,87 **** if (doctree == NULL) { xmlCleanupParser(); ! elog_error(ERROR, "Error parsing XML document", 0); PG_RETURN_NULL(); } --- 81,87 ---- if (doctree == NULL) { xmlCleanupParser(); ! elog_error(ERROR, "error parsing XML document", 0); PG_RETURN_NULL(); } *************** *** 95,101 **** { xmlFreeDoc(doctree); xmlCleanupParser(); ! elog_error(ERROR, "Error parsing stylesheet as XML document", 0); PG_RETURN_NULL(); } --- 95,101 ---- { xmlFreeDoc(doctree); xmlCleanupParser(); ! elog_error(ERROR, "error parsing stylesheet as XML document", 0); PG_RETURN_NULL(); } *************** *** 110,116 **** xmlFreeDoc(doctree); xsltCleanupGlobals(); xmlCleanupParser(); ! elog_error(ERROR, "Failed to parse stylesheet", 0); PG_RETURN_NULL(); } --- 110,116 ---- xmlFreeDoc(doctree); xsltCleanupGlobals(); xmlCleanupParser(); ! elog_error(ERROR, "failed to parse stylesheet", 0); PG_RETURN_NULL(); } ============================================================ *** doc/src/sgml/plperl.sgml 6f8fb3ab5f088a071834f05aed5554c1abfbdca5 --- doc/src/sgml/plperl.sgml 79bcffe394126707517c17c43c6623776add6079 *************** *** 399,405 **** my $t = localtime; elog(NOTICE, "opening file $file at $t" ); open my $fh, '<', $file # ooh, it's a file access! ! or elog(ERROR, "Can't open $file for reading: $!"); my @words = <$fh>; close $fh; $t = localtime; --- 399,405 ---- my $t = localtime; elog(NOTICE, "opening file $file at $t" ); open my $fh, '<', $file # ooh, it's a file access! ! or elog(ERROR, "can't open $file for reading: $!"); my @words = <$fh>; close $fh; $t = localtime; *************** *** 556,564 **** CREATE FUNCTION badfunc() RETURNS integer AS $$ my $tmpfile = "/tmp/badfile"; open my $fh, '>', $tmpfile ! or elog(ERROR, qq{Could not open the file "$tmpfile": $!}); print $fh "Testing writing to a file\n"; ! close $fh or elog(ERROR, qq{Could not close the file "$tmpfile": $!}); return 1; $$ LANGUAGE plperl; </programlisting> --- 556,564 ---- CREATE FUNCTION badfunc() RETURNS integer AS $$ my $tmpfile = "/tmp/badfile"; open my $fh, '>', $tmpfile ! or elog(ERROR, qq{could not open the file "$tmpfile": $!}); print $fh "Testing writing to a file\n"; ! close $fh or elog(ERROR, qq{could not close the file "$tmpfile": $!}); return 1; $$ LANGUAGE plperl; </programlisting> ============================================================ *** src/backend/access/transam/slru.c de1f6d38ab5e9b1b08c7e04e7da2a1684f6a0924 --- src/backend/access/transam/slru.c bb39e8e492a8bd2d6db649812fbd8703d2a21c4d *************** *** 752,759 **** ereport(ERROR, (errcode_for_file_access(), errmsg("could not access status of transaction %u", xid), ! errdetail("could not open file \"%s\": %m", ! path))); break; case SLRU_SEEK_FAILED: ereport(ERROR, --- 752,758 ---- ereport(ERROR, (errcode_for_file_access(), errmsg("could not access status of transaction %u", xid), ! errdetail("Could not open file \"%s\": %m.", path))); break; case SLRU_SEEK_FAILED: ereport(ERROR, *************** *** 759,765 **** ereport(ERROR, (errcode_for_file_access(), errmsg("could not access status of transaction %u", xid), ! errdetail("could not seek in file \"%s\" to offset %u: %m", path, offset))); break; case SLRU_READ_FAILED: --- 758,764 ---- ereport(ERROR, (errcode_for_file_access(), errmsg("could not access status of transaction %u", xid), ! errdetail("Could not seek in file \"%s\" to offset %u: %m.", path, offset))); break; case SLRU_READ_FAILED: *************** *** 766,772 **** ereport(ERROR, (errcode_for_file_access(), errmsg("could not access status of transaction %u", xid), ! errdetail("could not read from file \"%s\" at offset %u: %m", path, offset))); break; case SLRU_WRITE_FAILED: --- 765,771 ---- ereport(ERROR, (errcode_for_file_access(), errmsg("could not access status of transaction %u", xid), ! errdetail("Could not read from file \"%s\" at offset %u: %m.", path, offset))); break; case SLRU_WRITE_FAILED: *************** *** 773,779 **** ereport(ERROR, (errcode_for_file_access(), errmsg("could not access status of transaction %u", xid), ! errdetail("could not write to file \"%s\" at offset %u: %m", path, offset))); break; case SLRU_FSYNC_FAILED: --- 772,778 ---- ereport(ERROR, (errcode_for_file_access(), errmsg("could not access status of transaction %u", xid), ! errdetail("Could not write to file \"%s\" at offset %u: %m.", path, offset))); break; case SLRU_FSYNC_FAILED: *************** *** 780,786 **** ereport(ERROR, (errcode_for_file_access(), errmsg("could not access status of transaction %u", xid), ! errdetail("could not fsync file \"%s\": %m", path))); break; case SLRU_CLOSE_FAILED: --- 779,785 ---- ereport(ERROR, (errcode_for_file_access(), errmsg("could not access status of transaction %u", xid), ! errdetail("Could not fsync file \"%s\": %m.", path))); break; case SLRU_CLOSE_FAILED: *************** *** 787,793 **** ereport(ERROR, (errcode_for_file_access(), errmsg("could not access status of transaction %u", xid), ! errdetail("could not close file \"%s\": %m", path))); break; default: --- 786,792 ---- ereport(ERROR, (errcode_for_file_access(), errmsg("could not access status of transaction %u", xid), ! errdetail("Could not close file \"%s\": %m.", path))); break; default: ============================================================ *** src/backend/port/sysv_shmem.c 14aa9d42b0a5c6eeaca6fbedb1f6fb266cb29eb1 --- src/backend/port/sysv_shmem.c d29f7a3138c4a84a85ab553e8f0abcf154b6a374 *************** *** 426,432 **** UsedShmemSegAddr = origUsedShmemSegAddr; #endif ! elog(DEBUG3, "Attaching to %p", UsedShmemSegAddr); hdr = (void *) PGSharedMemoryAttach((IpcMemoryKey) UsedShmemSegID, &shmid); if (hdr == NULL) elog(FATAL, "could not reattach to shared memory (key=%d, addr=%p): %m", --- 426,432 ---- UsedShmemSegAddr = origUsedShmemSegAddr; #endif ! elog(DEBUG3, "attaching to %p", UsedShmemSegAddr); hdr = (void *) PGSharedMemoryAttach((IpcMemoryKey) UsedShmemSegID, &shmid); if (hdr == NULL) elog(FATAL, "could not reattach to shared memory (key=%d, addr=%p): %m", ============================================================ *** src/pl/plpython/plpython.c 1c65898abe9b77f914f5297324554136399cebea --- src/pl/plpython/plpython.c c3f02616a734b755494f023630ea8695deae34d9 *************** *** 404,410 **** ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION), errmsg("unexpected return value from trigger procedure"), ! errdetail("expected None or a String"))); srv = PyString_AsString(plrv); if (pg_strcasecmp(srv, "SKIP") == 0) --- 404,410 ---- ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION), errmsg("unexpected return value from trigger procedure"), ! errdetail("Expected None or a String."))); srv = PyString_AsString(plrv); if (pg_strcasecmp(srv, "SKIP") == 0) *************** *** 428,434 **** ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION), errmsg("unexpected return value from trigger procedure"), ! errdetail("expected None, \"OK\", \"SKIP\", or \"MODIFY\""))); } } } --- 428,434 ---- ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION), errmsg("unexpected return value from trigger procedure"), ! errdetail("Expected None, \"OK\", \"SKIP\", or \"MODIFY\"."))); } } } *************** *** 770,776 **** ereport(ERROR, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("invalid return value from plpython function"), ! errdetail("Functions returning type \"void\" must return \"None\"."))); fcinfo->isnull = false; rv = (Datum) 0; --- 770,776 ---- ereport(ERROR, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("invalid return value from plpython function"), ! errdetail("Functions returning type \"void\" must return None."))); fcinfo->isnull = false; rv = (Datum) 0; ============================================================ *** src/tutorial/beard.c 6a73dd717888cbd6d17296f674b936011e9f81d3 --- src/tutorial/beard.c a0f455e89a3ef52f7180b7db7bd82bea34deda8d *************** *** 38,47 **** ObjectIdGetDatum(picture), Int32GetDatum(INV_READ))); if (pic_fd < 0) ! elog(ERROR, "Cannot access picture large object"); if (lo_read(pic_fd, (char *) &ihdr, sizeof(ihdr)) != sizeof(ihdr)) ! elog(ERROR, "Picture large object corrupted"); beardOffset = (ihdr.size / 3) * 2; --- 38,47 ---- ObjectIdGetDatum(picture), Int32GetDatum(INV_READ))); if (pic_fd < 0) ! elog(ERROR, "cannot access picture large object"); if (lo_read(pic_fd, (char *) &ihdr, sizeof(ihdr)) != sizeof(ihdr)) ! elog(ERROR, "picture large object corrupted"); beardOffset = (ihdr.size / 3) * 2; *************** *** 51,69 **** beard = DatumGetObjectId(DirectFunctionCall1(lo_creat, Int32GetDatum(INV_MD))); if (beard == InvalidOid) ! elog(ERROR, "Cannot create new large object"); beard_fd = DatumGetInt32(DirectFunctionCall2(lo_open, ObjectIdGetDatum(beard), Int32GetDatum(INV_WRITE))); if (beard_fd < 0) ! elog(ERROR, "Cannot access beard large object"); if (DatumGetInt32(DirectFunctionCall3(lo_lseek, Int32GetDatum(pic_fd), Int32GetDatum(beardOffset), Int32GetDatum(SEEK_SET))) < 0) ! elog(ERROR, "Cannot seek in picture large object"); while ((cc = lo_read(pic_fd, buf, BUFSIZE)) > 0) { --- 51,69 ---- beard = DatumGetObjectId(DirectFunctionCall1(lo_creat, Int32GetDatum(INV_MD))); if (beard == InvalidOid) ! elog(ERROR, "cannot create new large object"); beard_fd = DatumGetInt32(DirectFunctionCall2(lo_open, ObjectIdGetDatum(beard), Int32GetDatum(INV_WRITE))); if (beard_fd < 0) ! elog(ERROR, "cannot access beard large object"); if (DatumGetInt32(DirectFunctionCall3(lo_lseek, Int32GetDatum(pic_fd), Int32GetDatum(beardOffset), Int32GetDatum(SEEK_SET))) < 0) ! elog(ERROR, "cannot seek in picture large object"); while ((cc = lo_read(pic_fd, buf, BUFSIZE)) > 0) {
---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend