|
From: MICHAEL L. <lu...@cs...> - 2003-05-29 14:57:32
|
Hey Jonathan:
I tried adding an entry into esternaldatabaserelease like so:
insert into Sres.Externaldatabaserelease
values(105,95,SYSDATE,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,SYSDATE,1,1,1,1,1,0,6,3,2,1);
which was inserted succesfully. (I'm not sure what version of the medline
database I'm supposed to use, so I just put 1. Actually, I don't even see
why the pfam plugin would require this to be there since medline is a
publications database) Anyway, here is the error I get when executing the
the following:
[luchtan@mango luchtan]$ ga GUS::Common::Plugin::LoadPfam --release=8.0
--flat_file=/scratch/luchtan/Pfam-A.full --verbose
Reading properties from /home/gus_home/config/GUS-PluginMgr.prop
Reading properties from /home/luchtan/.gus.properties
.
.
.
sqlExec:
INSERT INTO Core.AlgorithmParam ( row_user_id, user_write,
group_write, is_default, order_num, row_project_id,
algorithm_invocation_id, group_read, string_value, row_group_id,
other_read, modification_date, user_read, row_alg_invocation_id,
algorithm_param_id, algorithm_param_key_id, other_write )
VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, '', ?, ?, SYSDATE, ?, ?, ?, ?, ? )
bindValues (6, 1, 1, 0, 0, 2, 231, 1, 3, 1, 1, 231, 2512, 493, 0)
DbiHandle:sqlExec:insert succeeded 1 row(s)
ImportPfam: COMMIT OFF
ImportPfam: reading Pfam release 8.0 from /scratch/luchtan/Pfam-A.full
In readExternalDbReleases()
sqlExec:
UPDATE Core.AlgorithmInvocation
SET
end_time = SYSDATE,
row_alg_invocation_id = ?,
modification_date = SYSDATE
WHERE algorithm_invocation_id = ?
bindValues (231, 231)
DbiHandle:sqlExec:insert succeeded 1 row(s)
Can't use an undefined value as a HASH reference at
/home/gus_home/lib/perl/GUS/Common/Plugin/LoadPfam.pm line 285.
Any ideas what the deal here is?
Michael Luchtan
http://www.cs.uga.edu/~luchtan
On Thu, 29 May 2003, Jonathan Crabtree wrote:
>
> Michael-
>
> MICHAEL LUCHTAN wrote:
> > My first thought was to add an entry to the sres.externaldatabase table
> > like so:
> > insert into Sres.Externaldatabase
> > values(95,'medline','medline',SYSDATE,1,1,1,1,1,0,6,3,2,1);
> > But even after doing so I get the same error.
> >
> > Does anyone have any ideas?
>
> My guess is that you also need to add an entry to the ExternalDatabaseRelease
> table, since (as of version 3.0) GUS has split its representation of external
> databases into two tables: ExternalDatabase and ExternalDatabaseRelease. The
> plugin has been updated accordingly, however, the error messages (and comments)
> still refer to the old schema (which only has the ExternalDatabase table).
> Here's the relevant part of the code. Line 414 is the "die" statement,
> obviously:
>
> ># Return the external_db_id of an ExternalDatabase given its name.
> >#
> >sub getExtDbRelId {
> > my($extDbRels, $name) = @_;
> >
> > $name =~ tr/A-Z/a-z/; # Normalize to lowercase
> >
> > my $db = $extDbRels->{$name};
> > my $relId = $db->{'external_database_release_id'} if defined($db);
> >
> > die "Unable to find ID for ExternalDatabase $name" if (not defined($relId));
> > return $relId;
> >}
>
> I've updated the plugin in CVS to make the comment and error message a
> little more accurate.
>
> Looking quickly at the rest of the code, it appears that the "getExtDbRelId"
> will always return the most recent ExternalDatabaseRelease (or, rather, its
> primary key value) for a given ExternalDatabase.name, based on
> ExternalDatabaseRelease.release_date. This is ever-so-slightly dangerous,
> because the release_date is nullable, but should not be an issue so long as
> you specify one that's non-null.
>
> Jonathan
>
>
>
>
|