NAME

Bio::DB::BioSQL::Oracle::BiosequenceAdaptorDriver - DESCRIPTION of Object

SYNOPSIS

Give standard usage here

DESCRIPTION

Describe the object here

FEEDBACK

Mailing Lists

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.

bioperl-l@bioperl.org                  - General discussion
http://bioperl.org/wiki/Mailing_lists  - About the mailing lists

Support

Please direct usage questions or support issues to the mailing list:

bioperl-l@bioperl.org

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.

Reporting Bugs

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:

bioperl-bugs@bioperl.org
http://redmine.open-bio.org/projects/bioperl/

AUTHOR - Hilmar Lapp

Email hlapp at gmx.net

Describe contact details here

CONTRIBUTORS

Additional contributors names and emails here

APPENDIX

The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _

insert_object

 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.

update_object

 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.

get_biosequence

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

prepare

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

get_sth

 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)

_upd_sth2

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)

_upd_sth3

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)