Обсуждение: Function parameters change when update to 8.3
I have function in PostgreSQL 8.2
CREATE OR REPLACE FUNCTION post_ctpxd(ud_stt_rec)
RETURNS void AS
$BODY$DECLARE
...
BEGIN
....
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
My domain in 8.2
CREATE DOMAIN ud_stt_rec
AS character(20)
DEFAULT ''::bpchar
NOT NULL;
But when I dump database and restore to 8.3 this function change to
CREATE OR REPLACE FUNCTION post_ctpt1(ud_stt_rec(24))
RETURNS void AS
$BODY$DECLARE
...
BEGIN
...
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
My domain in 8.3
CREATE DOMAIN ud_stt_rec
AS character(20)
DEFAULT ''::bpchar;
So when I run script CREATE OR REPLACE FUNCTION post_ctpt1
it have error
ERROR: type modifier is not allowed for type "ud_stt_rec"
********** Error **********
ERROR: type modifier is not allowed for type "ud_stt_rec"
SQL state: 42601
Please help me. Thank you very much.
Tuan Hoang Anh
hatuan05@gmail.com
tuanhoanganh <hatuan05@gmail.com> writes:
> ... But when I dump database and restore to 8.3 this function change to
> CREATE OR REPLACE FUNCTION post_ctpt1(ud_stt_rec(24))
It works as expected for me. Please provide a *complete* test case,
including the specific dump and reload procedures you are using.
regards, tom lane
On 2/22/08, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> tuanhoanganh <hatuan05@gmail.com> writes:
> > ... But when I dump database and restore to 8.3 this function change to
>
> > CREATE OR REPLACE FUNCTION post_ctpt1(ud_stt_rec(24))
>
> It works as expected for me. Please provide a *complete* test case,
> including the specific dump and reload procedures you are using.
>
> regards, tom lane
>
My ud_stt_rec domain
CREATE DOMAIN ud_stt_rec
AS character(20)
DEFAULT ''::bpchar;
ALTER DOMAIN ud_stt_rec OWNER TO postgres;
I write script in Query of pgAdminIII
CREATE OR REPLACE FUNCTION test(ud_stt_rec)
RETURNS void AS
$BODY$
BEGIN
RETURN;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION test(ud_stt_rec) OWNER TO postgres;
This script run well.
In functions, I have a new function test. But when I choose "CREATE
script" with function test the script change to
-- Function: test(ud_stt_rec(24))
-- DROP FUNCTION test(ud_stt_rec(24));
CREATE OR REPLACE FUNCTION test(ud_stt_rec(24))
RETURNS void AS
$BODY$
BEGIN
RETURN;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION test(ud_stt_rec(24)) OWNER TO postgres;
tuanhoanganh <hatuan05@gmail.com> writes:
> I write script in Query of pgAdminIII
> ...
> In functions, I have a new function test. But when I choose "CREATE
> script" with function test the script change to
> -- Function: test(ud_stt_rec(24))
> -- DROP FUNCTION test(ud_stt_rec(24));
> CREATE OR REPLACE FUNCTION test(ud_stt_rec(24))
I'd say this is a pgadmin bug, which you should report on the pgadmin
mailing lists. But first, are you using the latest version of pgadmin?
regards, tom lane
Thank you, I use pgAdmin 1.8.2
On Fri, Feb 22, 2008 at 10:24 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
tuanhoanganh <hatuan05@gmail.com> writes:> I write script in Query of pgAdminIII> ...> In functions, I have a new function test. But when I choose "CREATEI'd say this is a pgadmin bug, which you should report on the pgadmin
> script" with function test the script change to
> -- Function: test(ud_stt_rec(24))
> -- DROP FUNCTION test(ud_stt_rec(24));
> CREATE OR REPLACE FUNCTION test(ud_stt_rec(24))
mailing lists. But first, are you using the latest version of pgadmin?
regards, tom lane