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 > > > > |