Hi.
> > Can give a link ?
> can do :
> http://freshmeat.net/projects/mysql2pgsql/?highlight=convert+sql
Thank you.
BTW, if you interested in this tool, I may send you fresh versions or place it on the web.
Maybe you will or somebody help me with one problem ? Do you know PL/pgSQL and how to create new type in Postgres ?
The problem is that I can't use new type constructed with CREATE TYPE if transform functions written on PL/pgSQL.
Because PL/pgSQL doesn't support type "opaque", or I do something wrong. The same function on PL/pgSQL with
input argtype "text" or "int2" works fine, but when I simply change argtype to "opaque", I get "compilation error near
line0".
Source is below.
Thanks,
Max Rudensky.
BEGIN;
CREATE FUNCTION enum_access_Monday_in (opaque)RETURNS enum_access_MondayAS 'DECLARE invalue ALIAS for $1;BEGIN IF
invalue=''''OR invalue=''0'' THEN RETURN 0; END IF; IF invalue=''Monday'' OR invalue=''1'' THEN RETURN 1; END IF;
IFinvalue=''Tuesday'' OR invalue=''2'' THEN RETURN 2; END IF; IF invalue=''Wednesday'' OR invalue=''3'' THEN RETURN
3;END IF; RAISE EXCEPTION ''incorrect input value: %'',invalue;END;'LANGUAGE 'plpgsql'WITH (ISCACHABLE);
CREATE FUNCTION enum_access_Monday_out (opaque)RETURNS opaqueAS 'DECLARE outvalue ALIAS for $1;BEGIN IF
outvalue=0THEN RETURN ''''; END IF; IF outvalue=1 THEN RETURN ''Monday''; END IF; IF outvalue=2 THEN RETURN
''Tuesday'';END IF; IF outvalue=3 THEN RETURN ''Wednesday''; END IF; RAISE EXCEPTION ''incorrect output value:
%'',outvalue;END;'LANGUAGE'plpgsql'WITH (ISCACHABLE);
CREATE TYPE enum_access_Monday (internallength = 2,input = enum_access_Monday_in,output =
enum_access_Monday_out,PASSEDBYVALUE
);
COMMIT;