On 08.11.2012 07:59, Chen Huajun wrote:
I am sending patch for errcontext() function.I use procedural languages to do some operation, but when error occurs ,the CONTEXT error messages from procedural languages doesn't display in local language. for example: -------------------------------------------------------- postgres=# CREATE OR REPLACE FUNCTION logfunc3 (logtxt text) RETURNS timestamp AS $$ postgres$# BEGIN postgres$# select * from db; postgres$# RETURN 'now'; postgres$# END; postgres$# $$ LANGUAGE plpgsql; CREATE FUNCTION postgres=# select logfunc3('test'); ERROR: リレーション"db"は存在しません 行 1: select * from db QUERY: select * from db CONTEXT: PL/pgSQL function "logfunc3" line 3 at SQL ステートメント -------------------------------------------------------- but,“CONTEXT: PL/pgSQL 関数 "logfunc3" の 3 行目の型 SQL ステートメント” is my expected. There is the same problem in pl/perl and pl/python . After checking and debuging the source code ,I found the reason. The reason is that domian setted is wrong. For PL/pgSQL, domain "pgsql" should be setted, but domain setted is "postgres" . So I considered to fix the bug by updating errcontext() funtion.
Unfortunately not all compilers support varargs macros. I bumped into this in February, see http://archives.postgresql.org/message-id/[email protected]. My last attempt to fix this was at http://archives.postgresql.org/pgsql-hackers/2012-04/msg00812.php. That patch is probably good to go, I just got busy with other things and forgot about it back then. Can you take a look at that patch and see if I missed anything, please?
- Heikki -- Sent via pgsql-hackers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
