Bio-ConnectDots
view release on metacpan or search on metacpan
lib/Bio/ConnectDots/DB.pm view on Meta::CPAN
package Bio::ConnectDots::DB;
use vars qw(@ISA @AUTO_ATTRIBUTES @OTHER_ATTRIBUTES %SYNONYMS);
use strict;
use DBI;
use File::Path;
use Class::AutoClass;
use Class::AutoClass::Args;
use Bio::ConnectDots::DotSet;
use Bio::ConnectDots::ConnectorSet;
@ISA = qw(Class::AutoClass);
@AUTO_ATTRIBUTES=qw(dsn dbh dbd database host port user password
read_only read_only_schema
_needs_disconnect _db_cursor _exists
load_name load_save load_chunksize load_cid_base
_ext_directory _load_fh _load_count _load_chunk sql_log
);
@OTHER_ATTRIBUTES=qw(ext_directory);
%SYNONYMS=(server=>'host');
Class::AutoClass::declare(__PACKAGE__);
# use 'double quotations to get case-sensitivity in label
# use 'not null' wherever possible to help query optimizier use indexes better
# denormalized connector to cut down the number of joins in big queries
my %SCHEMA=
(connectorset=>
qq(connectorset_id SERIAL,
"name" VARCHAR(255) NOT NULL,
"file_name" TEXT,
"version" VARCHAR(255) NOT NULL,
"source_date" VARCHAR(255),
"source_version" VARCHAR(255),
"download_date" VARCHAR(255),
"ftp" TEXT,
"ftp_files" TEXT,
"comment" TEXT,
PRIMARY KEY("connectorset_id"),UNIQUE("name","version")),
dotset=>
qq(dotset_id SERIAL,
"name" VARCHAR(255) NOT NULL,
PRIMARY KEY(dotset_id),UNIQUE("name")),
connectdotset=>
qq(connectdotset_id SERIAL,
connectorset_id INT NOT NULL,
dotset_id INT NOT NULL,
label_id INT NOT NULL,
PRIMARY KEY(connectdotset_id)),
label=>
qq(label_id SERIAL,
"label" VARCHAR(255) NOT NULL,
"source_label" VARCHAR(255),
"description" TEXT,
PRIMARY KEY(label_id),UNIQUE("label")),
connectortable=>
qq(connectortable_id SERIAL,
"name" VARCHAR(255) NOT NULL,
PRIMARY KEY(connectortable_id),UNIQUE("name")),
connectortableset=>
qq(connectortable_id INT NOT NULL,
connectorset_id INT NOT NULL,
"alias" VARCHAR(255) NOT NULL,
UNIQUE(connectortable_id,"alias")),
dottable=>
qq(dottable_id SERIAL,
"name" VARCHAR(255) NOT NULL,
PRIMARY KEY(dottable_id),UNIQUE("name")),
dottableset=>
qq(dottable_id INT NOT NULL,
dotset_id INT NOT NULL,
label_id INT NOT NULL,
cs_id INT NOT NULL,
"alias" VARCHAR(255) NOT NULL,
UNIQUE(dottable_id,"alias")),
( run in 2.047 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )