mirror of
https://github.com/postgres/postgres.git
synced 2025-04-25 21:42:33 +03:00
Fix some localizability issues with existing errcontext() calls.
This commit is contained in:
parent
2d7a6a9ef2
commit
e7f3645171
@ -3,7 +3,7 @@
|
|||||||
* procedural language
|
* procedural language
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.61 2003/07/26 23:58:23 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.62 2003/07/27 18:38:26 tgl Exp $
|
||||||
*
|
*
|
||||||
* This software is copyrighted by Jan Wieck - Hamburg.
|
* This software is copyrighted by Jan Wieck - Hamburg.
|
||||||
*
|
*
|
||||||
@ -720,7 +720,7 @@ static void
|
|||||||
plpgsql_compile_error_callback(void *arg)
|
plpgsql_compile_error_callback(void *arg)
|
||||||
{
|
{
|
||||||
if (plpgsql_error_funcname)
|
if (plpgsql_error_funcname)
|
||||||
errcontext("compile of PL/pgSQL function %s near line %d",
|
errcontext("compile of PL/pgSQL function \"%s\" near line %d",
|
||||||
plpgsql_error_funcname, plpgsql_error_lineno);
|
plpgsql_error_funcname, plpgsql_error_lineno);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
* procedural language
|
* procedural language
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.88 2003/07/25 23:37:28 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.89 2003/07/27 18:38:26 tgl Exp $
|
||||||
*
|
*
|
||||||
* This software is copyrighted by Jan Wieck - Hamburg.
|
* This software is copyrighted by Jan Wieck - Hamburg.
|
||||||
*
|
*
|
||||||
@ -190,7 +190,7 @@ plpgsql_exec_function(PLpgSQL_function * func, FunctionCallInfo fcinfo)
|
|||||||
/*
|
/*
|
||||||
* Make local execution copies of all the datums
|
* Make local execution copies of all the datums
|
||||||
*/
|
*/
|
||||||
estate.err_text = "while initialization of execution state";
|
estate.err_text = gettext_noop("during initialization of execution state");
|
||||||
for (i = 0; i < func->ndatums; i++)
|
for (i = 0; i < func->ndatums; i++)
|
||||||
{
|
{
|
||||||
switch (func->datums[i]->dtype)
|
switch (func->datums[i]->dtype)
|
||||||
@ -217,9 +217,9 @@ plpgsql_exec_function(PLpgSQL_function * func, FunctionCallInfo fcinfo)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Put the actual call argument values into the variables
|
* Store the actual call argument values into the variables
|
||||||
*/
|
*/
|
||||||
estate.err_text = "while putting call arguments to local variables";
|
estate.err_text = gettext_noop("while storing call arguments into local variables");
|
||||||
for (i = 0; i < func->fn_nargs; i++)
|
for (i = 0; i < func->fn_nargs; i++)
|
||||||
{
|
{
|
||||||
int n = func->fn_argvarnos[i];
|
int n = func->fn_argvarnos[i];
|
||||||
@ -259,7 +259,7 @@ plpgsql_exec_function(PLpgSQL_function * func, FunctionCallInfo fcinfo)
|
|||||||
* Initialize the other variables to NULL values for now. The default
|
* Initialize the other variables to NULL values for now. The default
|
||||||
* values are set when the blocks are entered.
|
* values are set when the blocks are entered.
|
||||||
*/
|
*/
|
||||||
estate.err_text = "while initializing local variables to NULL";
|
estate.err_text = gettext_noop("while initializing local variables to NULL");
|
||||||
for (i = estate.found_varno; i < estate.ndatums; i++)
|
for (i = estate.found_varno; i < estate.ndatums; i++)
|
||||||
{
|
{
|
||||||
switch (estate.datums[i]->dtype)
|
switch (estate.datums[i]->dtype)
|
||||||
@ -298,7 +298,7 @@ plpgsql_exec_function(PLpgSQL_function * func, FunctionCallInfo fcinfo)
|
|||||||
if (exec_stmt_block(&estate, func->action) != PLPGSQL_RC_RETURN)
|
if (exec_stmt_block(&estate, func->action) != PLPGSQL_RC_RETURN)
|
||||||
{
|
{
|
||||||
estate.err_stmt = NULL;
|
estate.err_stmt = NULL;
|
||||||
estate.err_text = "at END of toplevel PL block";
|
estate.err_text = NULL;
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_S_R_E_FUNCTION_EXECUTED_NO_RETURN_STATEMENT),
|
(errcode(ERRCODE_S_R_E_FUNCTION_EXECUTED_NO_RETURN_STATEMENT),
|
||||||
errmsg("control reached end of function without RETURN")));
|
errmsg("control reached end of function without RETURN")));
|
||||||
@ -308,7 +308,7 @@ plpgsql_exec_function(PLpgSQL_function * func, FunctionCallInfo fcinfo)
|
|||||||
* We got a return value - process it
|
* We got a return value - process it
|
||||||
*/
|
*/
|
||||||
estate.err_stmt = NULL;
|
estate.err_stmt = NULL;
|
||||||
estate.err_text = "while casting return value to function's return type";
|
estate.err_text = gettext_noop("while casting return value to function's return type");
|
||||||
|
|
||||||
fcinfo->isnull = estate.retisnull;
|
fcinfo->isnull = estate.retisnull;
|
||||||
|
|
||||||
@ -425,7 +425,7 @@ plpgsql_exec_trigger(PLpgSQL_function * func,
|
|||||||
/*
|
/*
|
||||||
* Make local execution copies of all the datums
|
* Make local execution copies of all the datums
|
||||||
*/
|
*/
|
||||||
estate.err_text = "while initialization of execution state";
|
estate.err_text = gettext_noop("during initialization of execution state");
|
||||||
for (i = 0; i < func->ndatums; i++)
|
for (i = 0; i < func->ndatums; i++)
|
||||||
{
|
{
|
||||||
switch (func->datums[i]->dtype)
|
switch (func->datums[i]->dtype)
|
||||||
@ -556,10 +556,10 @@ plpgsql_exec_trigger(PLpgSQL_function * func,
|
|||||||
var->value = Int16GetDatum(trigdata->tg_trigger->tgnargs);
|
var->value = Int16GetDatum(trigdata->tg_trigger->tgnargs);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Put the actual call argument values into the special execution
|
* Store the actual call argument values into the special execution
|
||||||
* state variables
|
* state variables
|
||||||
*/
|
*/
|
||||||
estate.err_text = "while putting call arguments to local variables";
|
estate.err_text = gettext_noop("while storing call arguments into local variables");
|
||||||
estate.trig_nargs = trigdata->tg_trigger->tgnargs;
|
estate.trig_nargs = trigdata->tg_trigger->tgnargs;
|
||||||
if (estate.trig_nargs == 0)
|
if (estate.trig_nargs == 0)
|
||||||
estate.trig_argv = NULL;
|
estate.trig_argv = NULL;
|
||||||
@ -575,7 +575,7 @@ plpgsql_exec_trigger(PLpgSQL_function * func,
|
|||||||
* Initialize the other variables to NULL values for now. The default
|
* Initialize the other variables to NULL values for now. The default
|
||||||
* values are set when the blocks are entered.
|
* values are set when the blocks are entered.
|
||||||
*/
|
*/
|
||||||
estate.err_text = "while initializing local variables to NULL";
|
estate.err_text = gettext_noop("while initializing local variables to NULL");
|
||||||
for (i = estate.found_varno; i < estate.ndatums; i++)
|
for (i = estate.found_varno; i < estate.ndatums; i++)
|
||||||
{
|
{
|
||||||
switch (estate.datums[i]->dtype)
|
switch (estate.datums[i]->dtype)
|
||||||
@ -615,7 +615,7 @@ plpgsql_exec_trigger(PLpgSQL_function * func,
|
|||||||
if (exec_stmt_block(&estate, func->action) != PLPGSQL_RC_RETURN)
|
if (exec_stmt_block(&estate, func->action) != PLPGSQL_RC_RETURN)
|
||||||
{
|
{
|
||||||
estate.err_stmt = NULL;
|
estate.err_stmt = NULL;
|
||||||
estate.err_text = "at END of toplevel PL block";
|
estate.err_text = NULL;
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_S_R_E_FUNCTION_EXECUTED_NO_RETURN_STATEMENT),
|
(errcode(ERRCODE_S_R_E_FUNCTION_EXECUTED_NO_RETURN_STATEMENT),
|
||||||
errmsg("control reached end of trigger procedure without RETURN")));
|
errmsg("control reached end of trigger procedure without RETURN")));
|
||||||
@ -681,16 +681,28 @@ plpgsql_exec_error_callback(void *arg)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (estate->err_stmt != NULL)
|
if (estate->err_stmt != NULL)
|
||||||
errcontext("PL/pgSQL function %s line %d at %s",
|
{
|
||||||
|
/* translator: last %s is a plpgsql statement type name */
|
||||||
|
errcontext("PL/pgSQL function \"%s\" line %d at %s",
|
||||||
estate->err_func->fn_name,
|
estate->err_func->fn_name,
|
||||||
estate->err_stmt->lineno,
|
estate->err_stmt->lineno,
|
||||||
plpgsql_stmt_typename(estate->err_stmt));
|
plpgsql_stmt_typename(estate->err_stmt));
|
||||||
|
}
|
||||||
else if (estate->err_text != NULL)
|
else if (estate->err_text != NULL)
|
||||||
errcontext("PL/pgSQL function %s %s",
|
{
|
||||||
|
/*
|
||||||
|
* We don't expend the cycles to run gettext() on err_text unless
|
||||||
|
* we actually need it. Therefore, places that set up err_text should
|
||||||
|
* use gettext_noop() to ensure the strings get recorded in the
|
||||||
|
* message dictionary.
|
||||||
|
*/
|
||||||
|
/* translator: last %s is a phrase such as "while storing call arguments into local variables" */
|
||||||
|
errcontext("PL/pgSQL function \"%s\" %s",
|
||||||
estate->err_func->fn_name,
|
estate->err_func->fn_name,
|
||||||
estate->err_text);
|
gettext(estate->err_text));
|
||||||
|
}
|
||||||
else
|
else
|
||||||
errcontext("PL/pgSQL function %s",
|
errcontext("PL/pgSQL function \"%s\"",
|
||||||
estate->err_func->fn_name);
|
estate->err_func->fn_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1518,16 +1518,16 @@ insert into PField values ('PF1_1', 'should fail due to unique index');
|
|||||||
ERROR: duplicate key violates UNIQUE constraint "pfield_name"
|
ERROR: duplicate key violates UNIQUE constraint "pfield_name"
|
||||||
update PSlot set backlink = 'WS.not.there' where slotname = 'PS.base.a1';
|
update PSlot set backlink = 'WS.not.there' where slotname = 'PS.base.a1';
|
||||||
ERROR: WS.not.there does not exist
|
ERROR: WS.not.there does not exist
|
||||||
CONTEXT: PL/pgSQL function tg_backlink_a line 16 at assignment
|
CONTEXT: PL/pgSQL function "tg_backlink_a" line 16 at assignment
|
||||||
update PSlot set backlink = 'XX.illegal' where slotname = 'PS.base.a1';
|
update PSlot set backlink = 'XX.illegal' where slotname = 'PS.base.a1';
|
||||||
ERROR: illegal backlink beginning with XX
|
ERROR: illegal backlink beginning with XX
|
||||||
CONTEXT: PL/pgSQL function tg_backlink_a line 16 at assignment
|
CONTEXT: PL/pgSQL function "tg_backlink_a" line 16 at assignment
|
||||||
update PSlot set slotlink = 'PS.not.there' where slotname = 'PS.base.a1';
|
update PSlot set slotlink = 'PS.not.there' where slotname = 'PS.base.a1';
|
||||||
ERROR: PS.not.there does not exist
|
ERROR: PS.not.there does not exist
|
||||||
CONTEXT: PL/pgSQL function tg_slotlink_a line 16 at assignment
|
CONTEXT: PL/pgSQL function "tg_slotlink_a" line 16 at assignment
|
||||||
update PSlot set slotlink = 'XX.illegal' where slotname = 'PS.base.a1';
|
update PSlot set slotlink = 'XX.illegal' where slotname = 'PS.base.a1';
|
||||||
ERROR: illegal slotlink beginning with XX
|
ERROR: illegal slotlink beginning with XX
|
||||||
CONTEXT: PL/pgSQL function tg_slotlink_a line 16 at assignment
|
CONTEXT: PL/pgSQL function "tg_slotlink_a" line 16 at assignment
|
||||||
insert into HSlot values ('HS', 'base.hub1', 1, '');
|
insert into HSlot values ('HS', 'base.hub1', 1, '');
|
||||||
ERROR: duplicate key violates UNIQUE constraint "hslot_name"
|
ERROR: duplicate key violates UNIQUE constraint "hslot_name"
|
||||||
insert into HSlot values ('HS', 'base.hub1', 20, '');
|
insert into HSlot values ('HS', 'base.hub1', 20, '');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user