Re: [RFC] obtaining the function call stack - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: [RFC] obtaining the function call stack
Date
Msg-id 4A5B8DE8.4070406@enterprisedb.com
Whole thread Raw
In response to [RFC] obtaining the function call stack  (Alvaro Herrera <alvherre@commandprompt.com>)
List pgsql-hackers
Alvaro Herrera wrote:
> This is a preliminary request for comments on obtaining a function call
> stack.  I've been trying to dodge the issue by exporting elog.c internal
> state (errcontext), but that turns out to be unfeasible and it's such a
> horrid kludge anyway.
> 
> So, the idea is to have a stack maintained by the function manager; each
> called function enters an element in it containing the interesting
> information about the function.  We'd have another function that would
> return this stack as a result set.  (With this arrangement, the topmost
> element would always appear to be this "peek" function.)
> 
> I haven't looked at the code to see how this would actually be
> implemented, so I don't have more details to offer.  Does anybody have
> opinions on the matter?

FWIW, pldebugger obtains a function call stack by peeking into the error
context stack. It only includes PLpgSQL functions, and it's ugly and
hacky. Something cleaner would simplify pldebugger, although it's always
going to be hacky since it needs to understand quite a lot about PLpgSQL
internal structures to display variables and stuff.

--  Heikki Linnakangas EnterpriseDB   http://www.enterprisedb.com


pgsql-hackers by date:

Previous
From: Pavel Stehule
Date:
Subject: Re: [RFC] obtaining the function call stack
Next
From: "Kevin Grittner"
Date:
Subject: Re: Alpha release process