2015-04-30 10:50 GMT+02:00 Pavel Stehule <pavel.steh...@gmail.com>: > > > 2015-04-30 10:24 GMT+02:00 Marko Tiikkaja <ma...@joh.to>: > >> Hi Pavel, >> >> This doesn't seem to be what I thought we had agreed on. For example: >> >> =# create function barf() returns void as $$ begin raise notice without >> context 'hello world'; end $$ language plpgsql; >> CREATE FUNCTION >> =# create function foof() returns void as $$ begin perform barf(); end $$ >> language plpgsql; >> CREATE FUNCTION >> =# select foof(); >> NOTICE: hello world >> CONTEXT: SQL statement "SELECT barf()" >> PL/pgSQL function foof() line 1 at PERFORM >> >> It's not only clear that WITHOUT CONTEXT didn't really work here, but it >> also had absolutely no effect since the context within barf() is also >> displayed. >> > > It doesn't look well - because it should be solve by errhidecontext(true) > > yes, there is a issue in send_message_to_frontend - this ignore > edata->hide_ctx field. After fixing, it working as expected - so this is a > bug in implementation of errhidecontext() > > should be > > if (edata->context && !edata->hide_ctx) > { > pq_sendbyte(&msgbuf, PG_DIAG_CONTEXT); > err_sendstring(&msgbuf, edata->context); > } > > and probably getting stack in err_finish should be fixed too: > > if (!edata->hide_ctx) > for (econtext = error_context_stack; > econtext != NULL; > econtext = econtext->previous) > (*econtext->callback) (econtext->arg); > > Regards > > Pavel > > I am sending patch
> > > I'll look on this issue. > > Regards > > Pavel > > >> >> >> .m >> > >