Move main error message text in plperl into errmsg from errdetail,
authorAlvaro Herrera
Mon, 15 Feb 2010 22:23:25 +0000 (22:23 +0000)
committerAlvaro Herrera
Mon, 15 Feb 2010 22:23:25 +0000 (22:23 +0000)
and move the context information into errcontext instead of errmsg.
This makes them better conform to our guidelines.

Also remove a few errcode declarations that were providing the default
value ERRCODE_INTERNAL_ERROR.

src/pl/plperl/expected/plperl_init.out
src/pl/plperl/plperl.c

index a2d4e18d2acaff5733c6b0036b3543a5b79d5b62..ef3d0ebf1d03b0eb84738a49b819043424943554 100644 (file)
@@ -9,6 +9,6 @@ SHOW plperl.on_plperl_init;
 (1 row)
 
 DO $$ warn 42 $$ language plperl;
-ERROR:  while executing plperl.on_plperl_init
-DETAIL:  'eval "string"' trapped by operation mask at line 2.
-CONTEXT:  PL/Perl anonymous code block
+ERROR:  'eval "string"' trapped by operation mask at line 2.
+CONTEXT:  While executing plperl.on_plperl_init.
+PL/Perl anonymous code block
index ab32fd88c598f60bd2fbafcf8ce7d7246a33d3d2..f181c39610c7c699bfe6bf8cf0e5cfa32b276cf5 100644 (file)
@@ -1,7 +1,7 @@
 /**********************************************************************
  * plperl.c - perl as a procedural language for PostgreSQL
  *
- *   $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.166 2010/02/14 18:42:18 rhaas Exp $
+ *   $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.167 2010/02/15 22:23:25 alvherre Exp $
  *
  **********************************************************************/
 
@@ -413,13 +413,9 @@ select_perl_context(bool trusted)
 
    eval_pv("PostgreSQL::InServer::SPI::bootstrap()", FALSE);
    if (SvTRUE(ERRSV))
-   {
        ereport(ERROR,
-           (errcode(ERRCODE_INTERNAL_ERROR),
-           errmsg("%s", strip_trailing_ws(SvPV_nolen(ERRSV))),
-           errdetail("While executing PostgreSQL::InServer::SPI::bootstrap")));
-   }
-
+               (errmsg("%s", strip_trailing_ws(SvPV_nolen(ERRSV))),
+                errdetail("While executing PostgreSQL::InServer::SPI::bootstrap.")));
 }
 
 /*
@@ -553,15 +549,13 @@ plperl_init_interp(void)
    if (perl_parse(plperl, plperl_init_shared_libs,
               nargs, embedding, NULL) != 0)
        ereport(ERROR,
-           (errcode(ERRCODE_INTERNAL_ERROR),
-               errmsg("while parsing perl initialization"),
-               errdetail("%s", strip_trailing_ws(SvPV_nolen(ERRSV))) ));
+               (errmsg("%s", strip_trailing_ws(SvPV_nolen(ERRSV))),
+                errcontext("While parsing perl initialization.")));
 
    if (perl_run(plperl) != 0)
        ereport(ERROR,
-           (errcode(ERRCODE_INTERNAL_ERROR),
-               errmsg("while running perl initialization"),
-               errdetail("%s", strip_trailing_ws(SvPV_nolen(ERRSV))) ));
+               (errmsg("%s", strip_trailing_ws(SvPV_nolen(ERRSV))),
+                errcontext("While running perl initialization.")));
 
 #ifdef WIN32
 
@@ -691,24 +685,17 @@ plperl_trusted_init(void)
        /* not safe, so disallow all trusted funcs */
        eval_pv(PLC_SAFE_BAD, FALSE);
        if (SvTRUE(ERRSV))
-       {
            ereport(ERROR,
-               (errcode(ERRCODE_INTERNAL_ERROR),
-                errmsg("while executing PLC_SAFE_BAD"),
-                errdetail("%s", strip_trailing_ws(SvPV_nolen(ERRSV))) ));
-       }
-
+                   (errmsg("%s", strip_trailing_ws(SvPV_nolen(ERRSV))),
+                    errcontext("While executing PLC_SAFE_BAD.")));
    }
    else
    {
        eval_pv(PLC_SAFE_OK, FALSE);
        if (SvTRUE(ERRSV))
-       {
            ereport(ERROR,
-               (errcode(ERRCODE_INTERNAL_ERROR),
-                errmsg("while executing PLC_SAFE_OK"),
-                errdetail("%s", strip_trailing_ws(SvPV_nolen(ERRSV))) ));
-       }
+                   (errmsg("%s", strip_trailing_ws(SvPV_nolen(ERRSV))),
+                    errcontext("While executing PLC_SAFE_OK.")));
 
        if (GetDatabaseEncoding() == PG_UTF8)
        {
@@ -719,12 +706,9 @@ plperl_trusted_init(void)
             */
            eval_pv("my $a=chr(0x100); return $a =~ /\\xa9/i", FALSE);
            if (SvTRUE(ERRSV))
-           {
                ereport(ERROR,
-                   (errcode(ERRCODE_INTERNAL_ERROR),
-                       errmsg("while executing utf8fix"),
-                       errdetail("%s", strip_trailing_ws(SvPV_nolen(ERRSV))) ));
-           }
+                       (errmsg("%s", strip_trailing_ws(SvPV_nolen(ERRSV))),
+                        errcontext("While executing utf8fix.")));
        }
 
        /* switch to the safe require opcode */
@@ -742,12 +726,9 @@ plperl_trusted_init(void)
            SPAGAIN;
 
            if (SvTRUE(ERRSV))
-           {
                ereport(ERROR,
-                   (errcode(ERRCODE_INTERNAL_ERROR),
-                       errmsg("while executing plperl.on_plperl_init"),
-                       errdetail("%s", strip_trailing_ws(SvPV_nolen(ERRSV))) ));
-           }
+                       (errmsg("%s", strip_trailing_ws(SvPV_nolen(ERRSV))),
+                        errcontext("While executing plperl.on_plperl_init.")));
        }
 
    }
@@ -761,12 +742,9 @@ plperl_untrusted_init(void)
    {
        eval_pv(plperl_on_plperlu_init, FALSE);
        if (SvTRUE(ERRSV))
-       {
            ereport(ERROR,
-               (errcode(ERRCODE_INTERNAL_ERROR),
-                   errmsg("while executing plperl.on_plperlu_init"),
-                   errdetail("%s", strip_trailing_ws(SvPV_nolen(ERRSV))) ));
-       }
+                   (errmsg("%s", strip_trailing_ws(SvPV_nolen(ERRSV))),
+                    errcontext("While executing plperl.on_plperlu_init.")));
    }
 }
 
@@ -1299,18 +1277,14 @@ plperl_create_sub(plperl_proc_desc *prodesc, char *s, Oid fn_oid)
    LEAVE;
 
    if (SvTRUE(ERRSV))
-   {
        ereport(ERROR,
                (errcode(ERRCODE_SYNTAX_ERROR),
                 errmsg("%s", strip_trailing_ws(SvPV_nolen(ERRSV)))));
-   }
 
    if (!subref)
-   {
        ereport(ERROR,
-               (errcode(ERRCODE_INTERNAL_ERROR),
-                errmsg("didn't get a GLOB from compiling %s via %s", prodesc->proname, compile_sub)));
-   }
+               (errmsg("didn't get a GLOB from compiling %s via %s",
+                       prodesc->proname, compile_sub)));
 
    prodesc->reference = newSVsv(subref);