Re: is there a mysql to postgresql sql converter?

Started by Clayton Cottinghamover 25 years ago10 messagesgeneral
Jump to latest
#1Max Fonin
fonin@ziet.zhitomir.ua
In reply to: Clayton Cottingham (#4)

Hi.

I'm writing MySQL->Postgres dump converter. E.g. it will convert only database dumps produced by mysqldump.
It's almost ready, problems are ENUM and SET types. I have problems with types emulation.
Maybe someone help me guys ?

Anyway, some half-working version attached.

Max Rudensky.

Attachments:

my2pg.plapplication/octet-stream; name=my2pg.plDownload
#2Clayton Cottingham
clayton@marketingchallenge.com
In reply to: Max Fonin (#1)

Max Fonin wrote:

Hi.

I'm writing MySQL->Postgres dump converter. E.g. it will convert only database dumps produced by mysqldump.
It's almost ready, problems are ENUM and SET types. I have problems with types emulation.
Maybe someone help me guys ?

Anyway, some half-working version attached.

Max Rudensky.

------------------------------------------------------------------------
Name: my2pg.pl
my2pg.pl Type: Perl Program (application/x-perl)
Encoding: base64

thats cool!!

i thought i saw another converter in the last couple o months on
freshmeat too

#3Max Fonin
fonin@ziet.zhitomir.ua
In reply to: Clayton Cottingham (#2)

Can give a link ?

On Fri, 17 Nov 2000 13:45:37 -0800
clayton cottingham <clayton@marketingchallenge.com> wrote:

Show quoted text

Max Fonin wrote:

Hi.

I'm writing MySQL->Postgres dump converter. E.g. it will convert only database dumps produced by mysqldump.
It's almost ready, problems are ENUM and SET types. I have problems with types emulation.
Maybe someone help me guys ?

Anyway, some half-working version attached.

Max Rudensky.

------------------------------------------------------------------------
Name: my2pg.pl
my2pg.pl Type: Perl Program (application/x-perl)
Encoding: base64

thats cool!!

i thought i saw another converter in the last couple o months on
freshmeat too

#4Clayton Cottingham
clayton@marketingchallenge.com

On Sat, 18 Nov 2000 01:13:23 +0200, Max Fonin said:

Can give a link ?

can do :
http://freshmeat.net/projects/mysql2pgsql/?highlight=convert+sql

i havent tried their's

did try yours

it was nice to have the transactions!

Show quoted text

On Fri, 17 Nov 2000 13:45:37 -0800
clayton cottingham <clayton@marketingchallenge.com> wrote:

Max Fonin wrote:

Hi.

I'm writing MySQL->Postgres dump converter. E.g. it will convert only database dumps produced by mysqldump.
It's almost ready, problems are ENUM and SET types. I have problems with types emulation.
Maybe someone help me guys ?

Anyway, some half-working version attached.

Max Rudensky.

------------------------------------------------------------------------
Name: my2pg.pl
my2pg.pl Type: Perl Program (application/x-perl)
Encoding: base64

thats cool!!

i thought i saw another converter in the last couple o months on
freshmeat too

#5Max Fonin
fonin@ziet.zhitomir.ua
In reply to: Max Fonin (#1)

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 line 0".
Source is below.

Thanks,
Max Rudensky.

BEGIN;

CREATE FUNCTION enum_access_Monday_in (opaque)
RETURNS enum_access_Monday
AS '
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;
IF invalue=''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 opaque
AS '
DECLARE
outvalue ALIAS for $1;
BEGIN
IF outvalue=0 THEN 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;

#6Max Fonin
fonin@ziet.zhitomir.ua
In reply to: Max Fonin (#1)
MySQL -> Postgres dump converter

Hi.

MySQL->Postgres dump converter is now available at http://ziet.zhitomir.ua/~fonin/code/my2pg.pl.
Still beta and bugsome version but working, supports MySQL ENUMs, near the end are SET emulation.
Please help me to test.

Max Rudensky.

#7Clayton Cottingham
clayton@marketingchallenge.com
In reply to: Max Fonin (#1)
Re: MySQL -> Postgres dump converter

On Tue, 21 Nov 2000 00:01:33 +0200, Max Fonin said:

Hi.

MySQL->Postgres dump converter is now available at http://ziet.zhitomir.ua/~fonin/code/my2pg.pl.
Still beta and bugsome version but working, supports MySQL ENUMs, near the end are SET emulation.
Please help me to test.

Max Rudensky.

i just did a dump of one of our work tables and it produced a lot of functions
returned as opaque

..
which is ok, except i cant find said shared object anywhere on my sys

what is this part of?

#8Clayton Cottingham
clayton@marketingchallenge.com
In reply to: Max Fonin (#1)
Re: MySQL -> Postgres dump converter

On Tue, 21 Nov 2000 00:01:33 +0200, Max Fonin said:

Hi.

MySQL->Postgres dump converter is now available at http://ziet.zhitomir.ua/~fonin/code/my2pg.pl.
Still beta and bugsome version but working, supports MySQL ENUMs, near the end are SET emulation.
Please help me to test.

Max Rudensky.

i just did a dump of one of our work tables and it produced a lot of functions
returned as opaque

..
which is ok, except i cant find said shared object anywhere on my sys

what is this part of?

#9Bruce Momjian
bruce@momjian.us
In reply to: Clayton Cottingham (#4)
Re: Re: is there a mysql to postgresql sql converter?

FYI, 7.1 will have a MySQL dump converter in /contrib.

[ Charset ISO-8859-1 unsupported, converting... ]

On Sat, 18 Nov 2000 01:13:23 +0200, Max Fonin said:

Can give a link ?

can do :
http://freshmeat.net/projects/mysql2pgsql/?highlight=convert+sql

i havent tried their's

did try yours

it was nice to have the transactions!

On Fri, 17 Nov 2000 13:45:37 -0800
clayton cottingham <clayton@marketingchallenge.com> wrote:

Max Fonin wrote:

Hi.

I'm writing MySQL->Postgres dump converter. E.g. it will convert only database dumps produced by mysqldump.
It's almost ready, problems are ENUM and SET types. I have problems with types emulation.
Maybe someone help me guys ?

Anyway, some half-working version attached.

Max Rudensky.

------------------------------------------------------------------------
Name: my2pg.pl
my2pg.pl Type: Perl Program (application/x-perl)
Encoding: base64

thats cool!!

i thought i saw another converter in the last couple o months on
freshmeat too

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
#10Bruce Momjian
bruce@momjian.us
In reply to: Max Fonin (#6)
Re: MySQL -> Postgres dump converter

FYI, we have a MySQL Perl script in 7.1beta. Would you please
check that and see if you have any enhancements? Thanks.

Hi.

MySQL->Postgres dump converter is now available at
http://ziet.zhitomir.ua/~fonin/code/my2pg.pl. Still beta and
bugsome version but working, supports MySQL ENUMs, near the end
are SET emulation. Please help me to test.

Max Rudensky.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026