On Wed, Feb 23, 2011 at 3:57 PM, Dave Page <dpage@pgadmin.org> wrote:
Thanks, patch applied to trunk and 1.12.
On Mon, Feb 21, 2011 at 9:17 AM, Nikhil S <nixmisc@gmail.com> wrote:
> Hi, > > In EDBAS 9.0, following notable restructuring has been done with respect to > functions and procedures. We need to adopt the same in the pgAdmin code > base. Note that these changes make EDBAS funcs/procs behave more like native > Postgres functions which is a good thing: > > * To debug edb-SPL functions/procedures, the debugger was using custom > EDB-protocol extension. With the latest refactorings, the normal code path > which was being employed for plpgsql objects can be used. This patch checks > for the version number at appropriate locations to avoid calling this custom > protocol now. Obviously the current behavior has to be retained for pre 9.0 > versions. (changes in debugger files. Had to also make some misc. changes to > handle default parameters appropriately.) > > * Procedures with or without OUT-parameters can now also be called without > the EDB-protocol extension with the EXEC command. For example, if you have a > procedure like "fooproc(a IN integer, b OUT integer)", you can call it with > "exec fooproc(123)". The OUT value is returned as the return value, just as > if it was a function call. Again this behaviour will now be the same as for > normal plpgsql objects.(pgFunction.cpp) > > * If an SPL-function has both an OUT-parameter and a return value, the > return value is transformed into an extra OUT-parameter named "_retval_". > This patch adds code to identify such a column and use its type to set the > return type appropriately. (pgFunction.cpp) > > Note that the changes are not as intensive as the above may sound. The > protocol extension was only being used by the debugger code paths, so the > changes are localised in that module. The remaining changes are in > pgFunction.cpp file only. I tested the debugger changes against both AS90 > and AS84 code bases. For the latter the extended protocol is getting invoked > appropriately. No testing on windows though yet. > > Regards, > Nikhils > >