From: Allen Day Date: Fri, 21 Feb 2003 17:56:49 +0000 (+0000) Subject: here is the pgsql test script. NOTE: it will not work right now b/c i've X-Git-Tag: v0.01~15 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=407bc860dcd264edba2430a506207874a0247257;p=dbsrgits%2FSQL-Translator.git here is the pgsql test script. NOTE: it will not work right now b/c i've just changed ::PostGreSQL to ::PostgreSQL, but haven't renamed the module itself yet. will do so later this morning, unless someone beats me to it :-) --- diff --git a/t/08postgres-to-mysql.t b/t/08postgres-to-mysql.t new file mode 100644 index 0000000..23d8232 --- /dev/null +++ b/t/08postgres-to-mysql.t @@ -0,0 +1,175 @@ +#!/usr/local/bin/perl +# vim: set ft=perl: + +BEGIN { print "1..1\n" } + +my $create = q| + +-- The cvterm module design is based on the ontology + +-- ================================================ +-- TABLE: cv +-- ================================================ + +create table cv ( + cv_id serial not null, + primary key (cv_id), + cvname varchar not null, + cvdefinition text, + + unique(cvname) +); + +-- ================================================ +-- TABLE: cvterm +-- ================================================ + +create table cvterm ( + cvterm_id serial not null, + primary key (cvterm_id), + cv_id int not null, + foreign key (cv_id) references cv (cv_id), + name varchar(255) not null, + termdefinition text, +-- the primary dbxref for this term. Other dbxrefs may be cvterm_dbxref + dbxref_id int, + foreign key (dbxref_id) references dbxref (dbxref_id), + + unique(termname, cv_id) +); +create index cvterm_idx1 on cvterm (cv_id); + +|; +#-- The unique key on termname, termtype_id ensures that all terms are +#-- unique within a given cv + +use SQL::Translator; +use Data::Dumper; + +$SQL::Translator::DEBUG = 1; + +my $tr = SQL::Translator->new(parser => "PostgreSQL", + producer => "MySQL" + #producer => "SQL::Translator::Producer::MySQL::translate" + #producer => sub { Dumper($_[1]) } + ); + +print "not " unless ($tr->translate(\$create)); +print "ok 1 # pointless test -- plz fix me!\n"; + +__END__ +__DATA__ + +-- The cvterm module design is based on the ontology + +-- ================================================ +-- TABLE: cv +-- ================================================ + +create table cv ( + cv_id serial not null, + primary key (cv_id), + cvname varchar not null, + cvdefinition text, + + unique(cvname) +); + +-- ================================================ +-- TABLE: cvterm +-- ================================================ + +create table cvterm ( + cvterm_id serial not null, + primary key (cvterm_id), + cv_id int not null, + foreign key (cv_id) references cv (cv_id), + name varchar(255) not null, + termdefinition text, +-- the primary dbxref for this term. Other dbxrefs may be cvterm_dbxref + dbxref_id int, + foreign key (dbxref_id) references dbxref (dbxref_id), + + unique(termname, cv_id) +-- The unique key on termname, termtype_id ensures that all terms are +-- unique within a given cv +); +create index cvterm_idx1 on cvterm (cv_id); + + +-- ================================================ +-- TABLE: cvrelationship +-- ================================================ + +create table cvrelationship ( + cvrelationship_id serial not null, + primary key (cvrelationship_id), + reltype_id int not null, + foreign key (reltype_id) references cvterm (cvterm_id), + subjterm_id int not null, + foreign key (subjterm_id) references cvterm (cvterm_id), + objterm_id int not null, + foreign key (objterm_id) references cvterm (cvterm_id), + + unique(reltype_id, subjterm_id, objterm_id) +); +create index cvrelationship_idx1 on cvrelationship (reltype_id); +create index cvrelationship_idx2 on cvrelationship (subjterm_id); +create index cvrelationship_idx3 on cvrelationship (objterm_id); + + +-- ================================================ +-- TABLE: cvpath +-- ================================================ + +create table cvpath ( + cvpath_id serial not null, + primary key (cvpath_id), + reltype_id int, + foreign key (reltype_id) references cvterm (cvterm_id), + subjterm_id int not null, + foreign key (subjterm_id) references cvterm (cvterm_id), + objterm_id int not null, + foreign key (objterm_id) references cvterm (cvterm_id), + cv_id int not null, + foreign key (cv_id) references cv (cv_id), + pathdistance int, + + unique (subjterm_id, objterm_id) +); +create index cvpath_idx1 on cvpath (reltype_id); +create index cvpath_idx2 on cvpath (subjterm_id); +create index cvpath_idx3 on cvpath (objterm_id); +create index cvpath_idx4 on cvpath (cv_id); + + +-- ================================================ +-- TABLE: cvtermsynonym +-- ================================================ + +create table cvtermsynonym ( + cvterm_id int not null, + foreign key (cvterm_id) references cvterm (cvterm_id), + termsynonym varchar(255) not null, + + unique(cvterm_id, termsynonym) +); +create index cvterm_synonym_idx1 on cvterm_synonym (cvterm_id); + +-- ================================================ +-- TABLE: cvterm_dbxref +-- ================================================ + +create table cvterm_dbxref ( + cvterm_dbxref_id serial not null, + primary key (cvterm_dbxref_id), + cvterm_id int not null, + foreign key (cvterm_id) references cvterm (cvterm_id), + dbxref_id int not null, + foreign key (dbxref_id) references dbxref (dbxref_id), + + unique(cvterm_id, dbxref_id) +); +create index cvterm_dbxref_idx1 on cvterm_dbxref (cvterm_id); +create index cvterm_dbxref_idx2 on cvterm_dbxref (dbxref_id); +