- AUTHOR - Hilmar Lapp
Bio::DB::BioSQL::Oracle::BiosequenceAdaptorDriver - DESCRIPTION of Object
Give standard usage here
Describe the object here
User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to the Bioperl mailing list. Your participation is much appreciated.
firstname.lastname@example.org - General discussion http://bioperl.org/wiki/Mailing_lists - About the mailing lists
Please direct usage questions or support issues to the mailing list:
rather than to the module maintainer directly. Many experienced and reponsive experts will be able look at the problem and quickly address it. Please include a thorough description of the problem with code and data examples if at all possible.
Report bugs to the Bioperl bug tracking system to help us keep track of the bugs and their resolution. Bug reports can be submitted via email or the web:
Email hlapp at gmx.net
Describe contact details here
Additional contributors names and emails here
The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _
Title : insert_object Usage : Function: We override this here in order to omit the insert if there are no values. This is because this entity basically represents a derived class, and we may simply be dealing with the base class. Example : Returns : The primary key of the newly inserted record. Args : A Bio::DB::BioSQL::BasePersistenceAdaptor derived object (basically, it needs to implement dbh(), sth($key, $sth), dbcontext(), and get_persistent_slots()). The object to be inserted. A reference to an array of foreign key objects; if any of those foreign key values is NULL (some foreign keys may be nullable), then give the class name.
Title : update_object Usage : Function: See parent class. We need to override this here because there is no Biosequence object separate from PrimarySeq that would hold a primary key. Hence, store()s cannot recognize when the Biosequence for a Bioentry already exists and needs to be updated, or when it needs to be created. The way the code is currently wired, the presence of the primary key (stemming from the bioentry) will always trigger an update. So, what we need to do here is check whether the entry already exists and if not delegate to insert_object(). Example : Returns : The number of updated rows Args : A Bio::DB::BioSQL::BasePersistenceAdaptor derived object (basically, it needs to implement dbh(), sth($key, $sth), dbcontext(), and get_persistent_slots()). The object to be updated. A reference to an array of foreign key objects; if any of those foreign key values is NULL (some foreign keys may be nullable), then give the class name.
Title : get_biosequence Usage : Function: Returns the actual sequence for a bioentry, or a substring of it. Example : Returns : A string (the sequence or subsequence) Args : The calling persistence adaptor. The primary key of the bioentry for which to obtain the sequence. Optionally, start and end position if only a subsequence is to be returned (for long sequences, obtaining the subsequence from the database may be much faster than obtaining it from the complete in-memory string, because the latter has to be retrieved first).
Title : prepare Usage : Function: Prepares a SQL statement and returns a statement handle. We override this here in order to intercept the row update statement. We'll edit the statement to replace the table name with the fully qualified table the former points to if it is in fact a synonym, not a real table. The reason is that otherwise LOB support doesn't work properly if the LOB parameter is wrapped in a call to NVL() (which it is) and the table is only a synonym, not a physical table. Example : Returns : the return value of the DBI::prepare() call Args : the DBI database handle for preparing the statement the SQL statement to prepare (a scalar) additional arguments to be passed to the dbh->prepare call
Title : get_sth Usage : Function: Retrieves the (prepared) statement handle to bind parameters for and to execute for the given operation. By default this will use the supplied key to retrieve the statement from the cache. This method is here to provide an opportunity for inheriting drivers to intercept the cached statement retrieval in order to on-the-fly redirect the statement execution to use a different statement than it would have used by default. This method may return undef if for instance there is no appropriate statement handle in the cache. Returning undef will trigger the calling method to construct a statement from scratch. Example : Returns : a prepared statement handle if one is exists for the query, and undef otherwise Args : - the calling adaptor (a Bio::DB::BioSQL::BasePersistenceAdaptor derived object - the object for the persistence operation - a reference to an array of foreign key objects; if any of those foreign key values is NULL then the class name - the key to the cache of the adaptor - the operation requesting a cache key (a scalar basically representing the name of the method)
Title : _upd_sth2 Usage : $obj->_upd_sth2($newval) Function: Get/set the second version of the update row statement as a prepared statement handle. The 'second version' differs from the default in that the set parameter for the SEQ column is not wrapped in a NVL() call. This is needed to make it work for LOB values (values longer than 4000 chars). However, this statement should only be executed if the value is defined in order to prevent unwanted un-sets of the value in the database. This is a private method. Do not use from outside. Example : Returns : value of _upd_sth2 (a DBI statement handle) Args : on set, new value (a DBI statement handle or undef, optional)
Title : _upd_sth3 Usage : $obj->_upd_sth3($newval) Function: Get/set the third version of the update row statement as a prepared statement handle. The 'third version' differs from the default in that the parameter for the SEQ column is not used for updating at all, but instead is placed into the WHERE-section as a dummy clause that always evaluates to true. This is needed to protect existing LOB values longer than 4000 chars from being updated to NULL, due to a bug in NVL(). This is a private method. Do not use from outside. Example : Returns : value of _upd_sth3 (a DBI statement handle) Args : on set, new value (a DBI statement handle or undef, optional)