From e9d41a41f7bb761896c969d3ab39b19b109dace5 Mon Sep 17 00:00:00 2001
From: Eugene Kulesha <ek@ebi.ac.uk>
Date: Tue, 29 Jul 2008 09:53:11 +0000
Subject: [PATCH] suppport for extra_data field in dna_align_feature

---
 .../Bio/EnsEMBL/DBSQL/DnaAlignFeatureAdaptor.pm    | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/modules/Bio/EnsEMBL/DBSQL/DnaAlignFeatureAdaptor.pm b/modules/Bio/EnsEMBL/DBSQL/DnaAlignFeatureAdaptor.pm
index 9d12d76308..6d889b686e 100644
--- a/modules/Bio/EnsEMBL/DBSQL/DnaAlignFeatureAdaptor.pm
+++ b/modules/Bio/EnsEMBL/DBSQL/DnaAlignFeatureAdaptor.pm
@@ -34,7 +34,7 @@ Post questions to the EnsEMBL development list <ensembl-dev@ebi.ac.uk>
 package Bio::EnsEMBL::DBSQL::DnaAlignFeatureAdaptor;
 use vars qw(@ISA);
 use strict;
-
+use Data::Dumper;
 use Bio::EnsEMBL::DnaDnaAlignFeature;
 use Bio::EnsEMBL::DBSQL::BaseAlignFeatureAdaptor;
 use Bio::EnsEMBL::Utils::Exception qw(throw warning);
@@ -214,7 +214,7 @@ sub save {
   my $db = $self->db();
   my $analysis_adaptor = $db->get_AnalysisAdaptor();
 
-  my $sql = qq{INSERT INTO $tablename (seq_region_id, seq_region_start, seq_region_end, seq_region_strand, hit_start, hit_end, hit_strand, hit_name, cigar_line, analysis_id, score, evalue, perc_ident, external_db_id, hcoverage) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)};
+  my $sql = qq{INSERT INTO $tablename (seq_region_id, seq_region_start, seq_region_end, seq_region_strand, hit_start, hit_end, hit_strand, hit_name, cigar_line, analysis_id, score, evalue, perc_ident, external_db_id, hcoverage, extra_data) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)};
 
   my $sth = $self->prepare($sql);
      
@@ -260,6 +260,8 @@ sub save {
     my $seq_region_id;
     ($feat, $seq_region_id) = $self->_pre_store_userdata($feat);
 
+    my $extra_data = $feat->extra_data ? $self->dump_data($feat->extra_data) : '';
+
     $sth->bind_param(1,$seq_region_id,SQL_INTEGER);
     $sth->bind_param(2,$feat->start,SQL_INTEGER);
     $sth->bind_param(3,$feat->end,SQL_INTEGER);
@@ -275,6 +277,7 @@ sub save {
     $sth->bind_param(13,$feat->percent_id,SQL_FLOAT);
     $sth->bind_param(14,$feat->external_db_id,SQL_INTEGER);
     $sth->bind_param(15,$feat->hcoverage,SQL_DOUBLE);
+    $sth->bind_param(16,$extra_data,SQL_LONGVARCHAR);
 
     $sth->execute();
     $original->dbID($sth->{'mysql_insertid'});
@@ -322,13 +325,13 @@ sub _objs_from_sth {
   my($dna_align_feature_id, $seq_region_id, $analysis_id, $seq_region_start,
      $seq_region_end, $seq_region_strand, $hit_start, $hit_end, $hit_name,
      $hit_strand, $cigar_line, $evalue, $perc_ident, $score,
-     $external_db_id, $hcoverage );
+     $external_db_id, $hcoverage, $extra_data );
 
   $sth->bind_columns(
     \$dna_align_feature_id, \$seq_region_id, \$analysis_id, \$seq_region_start,
     \$seq_region_end, \$seq_region_strand, \$hit_start, \$hit_end, \$hit_name,
     \$hit_strand, \$cigar_line, \$evalue, \$perc_ident, \$score,
-    \$external_db_id, \$hcoverage );
+    \$external_db_id, \$hcoverage, \$extra_data );
 
 
   my $asm_cs;
@@ -447,7 +450,8 @@ sub _objs_from_sth {
                                     'adaptor'      => $self,
                                     'dbID' => $dna_align_feature_id,
                                     'external_db_id' => $external_db_id,
-                                    'hcoverage'      => $hcoverage
+                                    'hcoverage'      => $hcoverage,
+				    'extra_data'     => $extra_data ? $self->get_dumped_data($extra_data) : '',
                                   } ) );
 
   }
-- 
GitLab