Re: patch: fix to use ``pg_get_functiondef()`` - Mailing list pgadmin-hackers
From | Andrej Antonov |
---|---|
Subject | Re: patch: fix to use ``pg_get_functiondef()`` |
Date | |
Msg-id | 4c8aebe7570a546854c71de8ed0e6ba0@imp-m.ru Whole thread Raw |
In response to | patch: fix to use ``pg_get_functiondef()`` (Andrej Antonov <antonov@imp-m.ru>) |
List | pgadmin-hackers |
|||||||||||||||||||| COMMENT-1 ON GITHUB [BEGIN] |||||||||||||||||||| <<< Dmitriy olshevskiy87@bk.ru >>> BTW > pg_get_functiondef() -- less wrong what's wrong with this function? :) |||||||||||||||||||| COMMENT-2 ON GITHUB [BEGIN] |||||||||||||||||||| ok. a few examples: example "A" =========== write function: CREATE FUNCTION test123() RETURNS TABLE(my_col text) LANGUAGE plpgsql AS $xxx$ BEGIN my_col := 'abc'; RETURN NEXT; my_col := 'def'; RETURN NEXT; END; $xxx$; --SELECT * FROM test123(); pgAdmin3 transforming it to function: -- Function: test123() -- DROP FUNCTION test123(); CREATE OR REPLACE FUNCTION test123() RETURNS SETOF text AS $BODY$ BEGIN my_col := 'abc'; RETURN NEXT; my_col := 'def'; RETURN NEXT; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100 ROWS 1000; ALTER FUNCTION test123() OWNER TO postgres; and of course with error: ERROR: "my_col" is not a known variable LINE 10: my_col := 'abc'; ^ ********** Error ********** ERROR: "my_col" is not a known variable SQL state: 42601 Character: 129 example "B" =========== CREATE FUNCTION test234(arr text[] DEFAULT ARRAY['sss', 'ddd']) RETURNS SETOF text LANGUAGE plpgsql AS $xxx$ DECLARE r record; BEGIN FOR r IN SELECT UNNEST(arr) LOOP RETURN NEXT r.unnest; END LOOP; END; $xxx$; --SELECT * FROM test234(); pgAdmin3 transforming it to function: -- Function: test234(text[]) -- DROP FUNCTION test234(text[]); CREATE OR REPLACE FUNCTION test234(arr text[] DEFAULT ARRAY['sss'::text) RETURNS SETOF text AS $BODY$ DECLARE r record; BEGIN FOR r IN SELECT UNNEST(arr) LOOP RETURN NEXT r.unnest; END LOOP; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100 ROWS 1000; ALTER FUNCTION test234(text[]) OWNER TO postgres; ...with error: ERROR: syntax error at or near ")" LINE 5: ...PLACE FUNCTION test234(arr text[] DEFAULT ARRAY['sss'::text) ^ ********** Error ********** ERROR: syntax error at or near ")" SQL state: 42601 Character: 137 other minor discomfort ====================== words -- ``VOLATILE``, ``COST 100``, ``ROWS 1000`` -- are extra (unnecessary, redundant). |||||||||||||||||||| COMMENT-3 ON GITHUB [BEGIN] |||||||||||||||||||| but this sql code was generated by pgadmin, isn't it? I thought you are talking about native postgres function pg_get_functiondef() ) |||||||||||||||||||| COMMENT-4 ON GITHUB [BEGIN] |||||||||||||||||||| > but this sql code was generated by pgadmin, isn't it? > I thought you are talking about native postgres function > pg_get_functiondef() sorry for my ambiguity message.. yes. my examples -- about pgadmin-generation (without ``pg_get_functiondef()`` ) I wanted to say: I do not know about bad sides of ``pg_get_functiondef()`` , but if they exists -- I think them less then bad sides of original-pgadmin-generation . |||||||||||||||||||| END OF COMMENTS ON GITHUB |||||||||||||||||||| Andrej Antonov писал 2015-12-08 11:50: > patch: fix to use ``pg_get_functiondef()`` [see attachment file] > > it is copy of pull-request https://github.com/postgres/pgadmin3/pull/12 > > thank you! -- Андрей Антонов, инженер-программист отдела информационных технологий и программирования, компания «Импульс М»
pgadmin-hackers by date: