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'll look on this issue. Regards Pavel > > > .m >