annotate variant_effect_predictor/Bio/EnsEMBL/DBSQL/MetaCoordContainer.pm @ 0:1f6dce3d34e0

Uploaded
author mahtabm
date Thu, 11 Apr 2013 02:01:53 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 =head1 LICENSE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 This software is distributed under a modified Apache license.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 For license details, please see
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 =head1 CONTACT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 developers list at <dev@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 <helpdesk@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 package Bio::EnsEMBL::DBSQL::MetaCoordContainer;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 use vars qw(@ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 use Bio::EnsEMBL::DBSQL::BaseAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 use Bio::EnsEMBL::Utils::Exception;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 @ISA = qw(Bio::EnsEMBL::DBSQL::BaseAdaptor);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 my $class = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 my $self = $class->SUPER::new(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 # Retrieve the list of the coordinate systems that features are stored
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 # in and cache them.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 my @coord_systems =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 @{ $self->db()->dnadb()->get_CoordSystemAdaptor->fetch_all() };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 my @cs_ids;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 foreach my $cs (@coord_systems) { push( @cs_ids, $cs->dbID() ) }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 my $sth = $self->prepare(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 'SELECT mc.table_name, mc.coord_system_id, mc.max_length '
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 . 'FROM meta_coord mc '
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 . 'WHERE mc.coord_system_id in ('
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 . join( ',', @cs_ids )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 . ')' );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 $sth->execute();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 while ( my ( $table_name, $cs_id, $max_length ) =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 $sth->fetchrow_array() )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 $table_name = lc($table_name);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 $self->{'_feature_cache'}->{$table_name} ||= [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 push( @{ $self->{'_feature_cache'}->{$table_name} }, $cs_id );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 $self->{'_max_len_cache'}->{$cs_id}->{$table_name} = $max_length;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 $sth->finish();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 } ## end sub new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 =head2 fetch_all_CoordSystems_by_feature_type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 Arg [1] : string $table - the name of the table to retrieve coord systems
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 for. E.g. 'gene', 'exon', 'dna_align_feature'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 Example : @css = @{$mcc->fetch_all_CoordSystems_by_feature_type('gene')};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 Description: This retrieves the list of coordinate systems that features
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 in a particular table are stored. It is used internally by
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 the API to perform queries to these tables and to ensure that
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 features are only stored in appropriate coordinate systems.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 Returntype : listref of Bio::EnsEMBL::CoordSystem objects
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 Exceptions : throw if name argument not provided
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 Caller : BaseFeatureAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 sub fetch_all_CoordSystems_by_feature_type {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 my $table = lc(shift); #case insensitive matching
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 throw('Name argument is required') unless $table;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 if(!$self->{'_feature_cache'}->{$table}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 return [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 my @cs_ids = @{$self->{'_feature_cache'}->{$table}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 my @coord_systems;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 my $csa = $self->db->get_CoordSystemAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 foreach my $cs_id (@cs_ids) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 my $cs = $csa->fetch_by_dbID($cs_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 if(!$cs) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 throw("meta_coord table refers to non-existant coord_system $cs_id");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 push @coord_systems, $cs;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 return \@coord_systems;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 =head2 fetch_max_length_by_CoordSystem_feature_type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 Arg [1] : Bio::EnsEMBL::CoordSystem $cs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 Arg [2] : string $table
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 Example : $max_len = $mcc->fetch_max_length_by_CoordSystem_feature_type($cs,'gene');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 Description: Returns the maximum length of features of a given type in
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 a given coordinate system.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 Returntype : int or undef
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 Exceptions : throw on incorrect argument
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 Caller : BaseFeatureAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 sub fetch_max_length_by_CoordSystem_feature_type {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 my $cs = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 my $table = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 if(!ref($cs) || !$cs->isa('Bio::EnsEMBL::CoordSystem')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 throw('Bio::EnsEMBL::CoordSystem argument expected');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 throw("Table name argument is required") unless $table;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 return $self->{'_max_len_cache'}->{$cs->dbID()}->{lc($table)};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 =head2 add_feature_type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 Arg [1] : Bio::EnsEMBL::CoordSystem $cs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 The coordinate system to associate with a feature table
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 Arg [2] : string $table - the name of the table in which features of
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 a given coordinate system will be stored in
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 Arg [3] : int $length
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 This length is used to update the max_length in the database
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 and the internal cache.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 Example : $csa->add_feature_table($chr_coord_system, 'gene');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 Description: This function tells the coordinate system adaptor that
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 features from a specified table will be stored in a certain
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 coordinate system. If this information is not already stored
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 in the database it will be added.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 Caller : BaseFeatureAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 sub add_feature_type {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 my $cs = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 my $table = lc(shift);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 my $length = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 if(!ref($cs) || !$cs->isa('Bio::EnsEMBL::CoordSystem')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 throw('CoordSystem argument is required.');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 if(!$table) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 throw('Table argument is required.');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 my $cs_ids = $self->{'_feature_cache'}->{$table} || [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 my ($exists) = grep {$cs->dbID() == $_} @$cs_ids;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 if( $exists ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 if( !$self->{'_max_len_cache'}->{$cs->dbID()}->{$table} ||
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 $self->{'_max_len_cache'}->{$cs->dbID()}->{$table} < $length ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 my $sth = $self->prepare('UPDATE meta_coord ' .
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 "SET max_length = $length " .
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 'WHERE coord_system_id = ? ' .
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 'AND table_name = ? '.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 "AND (max_length<$length ".
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 "OR max_length is null)");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 $sth->execute( $cs->dbID(), $table );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 $self->{'_max_len_cache'}->{$cs->dbID()}->{$table} = $length;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 #store the new tablename -> coord system relationship in the db
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 #ignore failures b/c during the pipeline multiple processes may try
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 #to update this table and only the first will be successful
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 my $sth = $self->prepare('INSERT IGNORE INTO meta_coord ' .
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 'SET coord_system_id = ?, ' .
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 'table_name = ?, ' .
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 'max_length = ? '
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 $sth->execute($cs->dbID, $table, $length );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218 #update the internal cache
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 $self->{'_feature_cache'}->{$table} ||= [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 push @{$self->{'_feature_cache'}->{$table}}, $cs->dbID();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 $self->{'_max_len_cache'}->{$cs->dbID()}->{$table} = $length;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 1;