here is the pgsql test script. NOTE: it will not work right now b/c i've
Allen Day [Fri, 21 Feb 2003 17:56:49 +0000 (17:56 +0000)]
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
:-)

t/08postgres-to-mysql.t [new file with mode: 0644]

diff --git a/t/08postgres-to-mysql.t b/t/08postgres-to-mysql.t
new file mode 100644 (file)
index 0000000..23d8232
--- /dev/null
@@ -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);
+