← Index
NYTProf Performance Profile   « block view • line view • sub view »
For xt/tapper-mcp-scheduler-with-db-longrun.t
  Run on Tue May 22 17:18:39 2012
Reported on Tue May 22 17:22:58 2012

Filename/2home/ss5/perl5/perlbrew/perls/perl-5.12.3/lib/site_perl/5.12.3/DBIx/Class.pm
StatementsExecuted 319 statements in 2.65ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1111.79ms1.83msDBIx::Class::::BEGIN@68DBIx::Class::BEGIN@68
5311901µs7.76msDBIx::Class::::mk_classaccessorDBIx::Class::mk_classaccessor
53175641µs8.40msDBIx::Class::::mk_classdataDBIx::Class::mk_classdata
7311103µs103µsDBIx::Class::::component_base_classDBIx::Class::component_base_class
11189µs89µsDBIx::Class::::BEGIN@71DBIx::Class::BEGIN@71
11159µs59µsDBIx::Class::::BEGIN@18DBIx::Class::BEGIN@18
11115µs19µsDBIx::Class::::BEGIN@3DBIx::Class::BEGIN@3
11113µs7.41msDBIx::Class::::BEGIN@70DBIx::Class::BEGIN@70
11110µs26µsDBIx::Class::::BEGIN@4DBIx::Class::BEGIN@4
1118µs19µsDBIx::Class::::BEGIN@66DBIx::Class::BEGIN@66
1112µs2µsDBIx::Class::::CORE:matchDBIx::Class::CORE:match (opcode)
0000s0sDBIx::Class::::MODIFY_CODE_ATTRIBUTESDBIx::Class::MODIFY_CODE_ATTRIBUTES
0000s0sDBIx::Class::::_attr_cacheDBIx::Class::_attr_cache
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package DBIx::Class;
2
3320µs222µs
# spent 19µs (15+3) within DBIx::Class::BEGIN@3 which was called: # once (15µs+3µs) by parent::import at line 3
use strict;
# spent 19µs making 1 call to DBIx::Class::BEGIN@3 # spent 3µs making 1 call to strict::import
43270µs242µs
# spent 26µs (10+16) within DBIx::Class::BEGIN@4 which was called: # once (10µs+16µs) by parent::import at line 4
use warnings;
# spent 26µs making 1 call to DBIx::Class::BEGIN@4 # spent 16µs making 1 call to warnings::import
5
61500nsour $VERSION;
7# Always remember to do all digits for the version even if they're 0
8# i.e. first release of 0.XX *must* be 0.XX000. This avoids fBSD ports
9# brain damage and presumably various other packaging systems too
10
11# $VERSION declaration must stay up here, ahead of any other package
12# declarations, as to not confuse various modules attempting to determine
13# this ones version, whether that be s.c.o. or Module::Metadata, etc
141900ns$VERSION = '0.08196';
15
1618µs12µs$VERSION = eval $VERSION if $VERSION =~ /_/; # numify for warning-free dev releases
# spent 2µs making 1 call to DBIx::Class::CORE:match
17
18
# spent 59µs within DBIx::Class::BEGIN@18 which was called: # once (59µs+0s) by parent::import at line 64
BEGIN {
19 package # hide from pause
20 DBIx::Class::_ENV_;
21
22611µs if ($] < 5.009_005) {
23 require MRO::Compat;
24 *OLD_MRO = sub () { 1 };
25 }
26 else {
27 require mro;
28 *OLD_MRO = sub () { 0 };
29 }
30
31 # ::Runmode would only be loaded by DBICTest, which in turn implies t/
32 *DBICTEST = eval { DBICTest::RunMode->is_author }
33 ? sub () { 1 }
34 : sub () { 0 }
35143µs ;
36
37 # There was a brief period of p5p insanity when $@ was invisible in a DESTROY
38 *INVISIBLE_DOLLAR_AT = ($] >= 5.013001 and $] <= 5.013007)
39 ? sub () { 1 }
40 : sub () { 0 }
41 ;
42
43 # During 5.13 dev cycle HELEMs started to leak on copy
44 *PEEPEENESS = (defined $ENV{DBICTEST_ALL_LEAKS}
45 # request for all tests would force "non-leaky" illusion and vice-versa
46 ? ! $ENV{DBICTEST_ALL_LEAKS}
47
48 # otherwise confess that this perl is busted ONLY on smokers
49 : do {
5025µs if (eval { DBICTest::RunMode->is_smoker }) {
51
52 # leaky 5.13.6 (fixed in blead/cefd5c7c)
53 if ($] == '5.013006') { 1 }
54
55 # not sure why this one leaks, but disable anyway - ANDK seems to make it weep
56 elsif ($] == '5.013005') { 1 }
57
58 else { 0 }
59 }
60 else { 0 }
61 }
621500ns ) ? sub () { 1 } : sub () { 0 };
63
64126µs159µs}
# spent 59µs making 1 call to DBIx::Class::BEGIN@18
65
66320µs229µs
# spent 19µs (8+11) within DBIx::Class::BEGIN@66 which was called: # once (8µs+11µs) by parent::import at line 66
use mro 'c3';
# spent 19µs making 1 call to DBIx::Class::BEGIN@66 # spent 11µs making 1 call to mro::import
67
683100µs11.83ms
# spent 1.83ms (1.79+34µs) within DBIx::Class::BEGIN@68 which was called: # once (1.79ms+34µs) by parent::import at line 68
use DBIx::Class::Optional::Dependencies;
# spent 1.83ms making 1 call to DBIx::Class::BEGIN@68
69
70330µs214.8ms
# spent 7.41ms (13µs+7.40) within DBIx::Class::BEGIN@70 which was called: # once (13µs+7.40ms) by parent::import at line 70
use base qw/DBIx::Class::Componentised DBIx::Class::AccessorGroup/;
# spent 7.41ms making 1 call to DBIx::Class::BEGIN@70 # spent 7.40ms making 1 call to base::import
713394µs189µs
# spent 89µs within DBIx::Class::BEGIN@71 which was called: # once (89µs+0s) by parent::import at line 71
use DBIx::Class::StartupCheck;
# spent 89µs making 1 call to DBIx::Class::BEGIN@71
72
7319µs1204µs__PACKAGE__->mk_group_accessors(inherited => '_skip_namespace_frames');
# spent 204µs making 1 call to Class::Accessor::Grouped::mk_group_accessors
7412µs124µs__PACKAGE__->_skip_namespace_frames('^DBIx::Class|^SQL::Abstract|^Try::Tiny|^Class::Accessor::Grouped$');
# spent 24µs making 1 call to DBIx::Class::_skip_namespace_frames
75
76
# spent 8.40ms (641µs+7.76) within DBIx::Class::mk_classdata which was called 53 times, avg 158µs/call: # 37 times (580µs+5.16ms) by DBIx::Class::ResultSourceProxy::Table::table at line 99 of DBIx/Class/ResultSourceProxy/Table.pm, avg 155µs/call # once (7µs+280µs) by Class::C3::Componentised::ensure_class_loaded at line 12 of DBIx/Class/DynamicDefault.pm # once (8µs+255µs) by parent::import at line 16 of DBIx/Class/Schema.pm # once (6µs+210µs) by Class::C3::Componentised::ensure_class_loaded at line 12 of DBIx/Class/ResultSourceProxy/Table.pm # once (8µs+195µs) by Class::C3::Componentised::ensure_class_loaded at line 30 of DBIx/Class/ResultSource.pm # once (5µs+186µs) by Class::C3::Componentised::ensure_class_loaded at line 209 of DBIx/Class/Schema/Versioned.pm # once (2µs+154µs) by parent::import at line 18 of DBIx/Class/Schema.pm # once (3µs+140µs) by parent::import at line 17 of DBIx/Class/Schema.pm # once (2µs+139µs) by parent::import at line 22 of DBIx/Class/Schema.pm # once (3µs+135µs) by Class::C3::Componentised::ensure_class_loaded at line 210 of DBIx/Class/Schema/Versioned.pm # once (2µs+133µs) by parent::import at line 21 of DBIx/Class/Schema.pm # once (3µs+131µs) by Class::C3::Componentised::ensure_class_loaded at line 14 of DBIx/Class/ResultSourceProxy/Table.pm # once (3µs+131µs) by parent::import at line 19 of DBIx/Class/Schema.pm # once (3µs+128µs) by parent::import at line 20 of DBIx/Class/Schema.pm # once (2µs+126µs) by Class::C3::Componentised::ensure_class_loaded at line 211 of DBIx/Class/Schema/Versioned.pm # once (2µs+126µs) by Class::C3::Componentised::ensure_class_loaded at line 213 of DBIx/Class/Schema/Versioned.pm # once (2µs+125µs) by Class::C3::Componentised::ensure_class_loaded at line 212 of DBIx/Class/Schema/Versioned.pm
sub mk_classdata {
7753685µs537.76ms shift->mk_classaccessor(@_);
# spent 7.76ms making 53 calls to DBIx::Class::mk_classaccessor, avg 146µs/call
78}
79
80
# spent 7.76ms (901µs+6.85) within DBIx::Class::mk_classaccessor which was called 53 times, avg 146µs/call: # 53 times (901µs+6.85ms) by DBIx::Class::mk_classdata at line 77, avg 146µs/call
sub mk_classaccessor {
81159858µs my $self = shift;
82536.79ms $self->mk_group_accessors('inherited', $_[0]);
# spent 6.79ms making 53 calls to Class::Accessor::Grouped::mk_group_accessors, avg 128µs/call
83866µs $self->set_inherited(@_) if @_ > 1;
# spent 66µs making 8 calls to Class::Accessor::Grouped::set_inherited, avg 8µs/call
84}
85
8673165µs
# spent 103µs within DBIx::Class::component_base_class which was called 73 times, avg 1µs/call: # 73 times (103µs+0s) by Class::C3::Componentised::load_components at line 71 of Class/C3/Componentised.pm, avg 1µs/call
sub component_base_class { 'DBIx::Class' }
87
88sub MODIFY_CODE_ATTRIBUTES {
89 my ($class,$code,@attrs) = @_;
90 $class->mk_classdata('__attr_cache' => {})
91 unless $class->can('__attr_cache');
92 $class->__attr_cache->{$code} = [@attrs];
93 return ();
94}
95
96sub _attr_cache {
97 my $self = shift;
98 my $cache = $self->can('__attr_cache') ? $self->__attr_cache : {};
99
100 return {
101 %$cache,
102 %{ $self->maybe::next::method || {} },
103 };
104}
105
10617µs1;
107
108=head1 NAME
109
110DBIx::Class - Extensible and flexible object <-> relational mapper.
111
112=head1 GETTING HELP/SUPPORT
113
114The community can be found via:
115
116=over
117
118=item * Web Site: L<http://www.dbix-class.org/>
119
120=item * IRC: irc.perl.org#dbix-class
121
122=for html
123<a href="http://chat.mibbit.com/#dbix-class@irc.perl.org">(click for instant chatroom login)</a>
124
125=item * Mailing list: L<http://lists.scsys.co.uk/mailman/listinfo/dbix-class>
126
127=item * RT Bug Tracker: L<https://rt.cpan.org/Dist/Display.html?Queue=DBIx-Class>
128
129=item * gitweb: L<http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits/DBIx-Class.git>
130
131=item * git: L<git://git.shadowcat.co.uk/dbsrgits/DBIx-Class.git>
132
133=item * twitter L<http://www.twitter.com/dbix_class>
134
135=back
136
137=head1 SYNOPSIS
138
139Create a schema class called MyApp/Schema.pm:
140
141 package MyApp::Schema;
142 use base qw/DBIx::Class::Schema/;
143
144 __PACKAGE__->load_namespaces();
145
146 1;
147
148Create a result class to represent artists, who have many CDs, in
149MyApp/Schema/Result/Artist.pm:
150
151See L<DBIx::Class::ResultSource> for docs on defining result classes.
152
153 package MyApp::Schema::Result::Artist;
154 use base qw/DBIx::Class::Core/;
155
156 __PACKAGE__->table('artist');
157 __PACKAGE__->add_columns(qw/ artistid name /);
158 __PACKAGE__->set_primary_key('artistid');
159 __PACKAGE__->has_many(cds => 'MyApp::Schema::Result::CD', 'artistid');
160
161 1;
162
163A result class to represent a CD, which belongs to an artist, in
164MyApp/Schema/Result/CD.pm:
165
166 package MyApp::Schema::Result::CD;
167 use base qw/DBIx::Class::Core/;
168
169 __PACKAGE__->load_components(qw/InflateColumn::DateTime/);
170 __PACKAGE__->table('cd');
171 __PACKAGE__->add_columns(qw/ cdid artistid title year /);
172 __PACKAGE__->set_primary_key('cdid');
173 __PACKAGE__->belongs_to(artist => 'MyApp::Schema::Result::Artist', 'artistid');
174
175 1;
176
177Then you can use these classes in your application's code:
178
179 # Connect to your database.
180 use MyApp::Schema;
181 my $schema = MyApp::Schema->connect($dbi_dsn, $user, $pass, \%dbi_params);
182
183 # Query for all artists and put them in an array,
184 # or retrieve them as a result set object.
185 # $schema->resultset returns a DBIx::Class::ResultSet
186 my @all_artists = $schema->resultset('Artist')->all;
187 my $all_artists_rs = $schema->resultset('Artist');
188
189 # Output all artists names
190 # $artist here is a DBIx::Class::Row, which has accessors
191 # for all its columns. Rows are also subclasses of your Result class.
192 foreach $artist (@all_artists) {
193 print $artist->name, "\n";
194 }
195
196 # Create a result set to search for artists.
197 # This does not query the DB.
198 my $johns_rs = $schema->resultset('Artist')->search(
199 # Build your WHERE using an SQL::Abstract structure:
200 { name => { like => 'John%' } }
201 );
202
203 # Execute a joined query to get the cds.
204 my @all_john_cds = $johns_rs->search_related('cds')->all;
205
206 # Fetch the next available row.
207 my $first_john = $johns_rs->next;
208
209 # Specify ORDER BY on the query.
210 my $first_john_cds_by_title_rs = $first_john->cds(
211 undef,
212 { order_by => 'title' }
213 );
214
215 # Create a result set that will fetch the artist data
216 # at the same time as it fetches CDs, using only one query.
217 my $millennium_cds_rs = $schema->resultset('CD')->search(
218 { year => 2000 },
219 { prefetch => 'artist' }
220 );
221
222 my $cd = $millennium_cds_rs->next; # SELECT ... FROM cds JOIN artists ...
223 my $cd_artist_name = $cd->artist->name; # Already has the data so no 2nd query
224
225 # new() makes a DBIx::Class::Row object but doesnt insert it into the DB.
226 # create() is the same as new() then insert().
227 my $new_cd = $schema->resultset('CD')->new({ title => 'Spoon' });
228 $new_cd->artist($cd->artist);
229 $new_cd->insert; # Auto-increment primary key filled in after INSERT
230 $new_cd->title('Fork');
231
232 $schema->txn_do(sub { $new_cd->update }); # Runs the update in a transaction
233
234 # change the year of all the millennium CDs at once
235 $millennium_cds_rs->update({ year => 2002 });
236
237=head1 DESCRIPTION
238
239This is an SQL to OO mapper with an object API inspired by L<Class::DBI>
240(with a compatibility layer as a springboard for porting) and a resultset API
241that allows abstract encapsulation of database operations. It aims to make
242representing queries in your code as perl-ish as possible while still
243providing access to as many of the capabilities of the database as possible,
244including retrieving related records from multiple tables in a single query,
245JOIN, LEFT JOIN, COUNT, DISTINCT, GROUP BY, ORDER BY and HAVING support.
246
247DBIx::Class can handle multi-column primary and foreign keys, complex
248queries and database-level paging, and does its best to only query the
249database in order to return something you've directly asked for. If a
250resultset is used as an iterator it only fetches rows off the statement
251handle as requested in order to minimise memory usage. It has auto-increment
252support for SQLite, MySQL, PostgreSQL, Oracle, SQL Server and DB2 and is
253known to be used in production on at least the first four, and is fork-
254and thread-safe out of the box (although
255L<your DBD may not be|DBI/Threads_and_Thread_Safety>).
256
257This project is still under rapid development, so large new features may be
258marked EXPERIMENTAL - such APIs are still usable but may have edge bugs.
259Failing test cases are *always* welcome and point releases are put out rapidly
260as bugs are found and fixed.
261
262We do our best to maintain full backwards compatibility for published
263APIs, since DBIx::Class is used in production in many organisations,
264and even backwards incompatible changes to non-published APIs will be fixed
265if they're reported and doing so doesn't cost the codebase anything.
266
267The test suite is quite substantial, and several developer releases
268are generally made to CPAN before the branch for the next release is
269merged back to trunk for a major release.
270
271=head1 WHERE TO GO NEXT
272
273L<DBIx::Class::Manual::DocMap> lists each task you might want help on, and
274the modules where you will find documentation.
275
276=head1 AUTHOR
277
278mst: Matt S. Trout <mst@shadowcatsystems.co.uk>
279
280(I mostly consider myself "project founder" these days but the AUTHOR heading
281is traditional :)
282
283=head1 CONTRIBUTORS
284
285abraxxa: Alexander Hartmaier <abraxxa@cpan.org>
286
287acca: Alexander Kuznetsov <acca@cpan.org>
288
289aherzog: Adam Herzog <adam@herzogdesigns.com>
290
291Alexander Keusch <cpan@keusch.at>
292
293alnewkirk: Al Newkirk <we@ana.im>
294
295amiri: Amiri Barksdale <amiri@metalabel.com>
296
297amoore: Andrew Moore <amoore@cpan.org>
298
299andyg: Andy Grundman <andy@hybridized.org>
300
301ank: Andres Kievsky
302
303arc: Aaron Crane <arc@cpan.org>
304
305arcanez: Justin Hunter <justin.d.hunter@gmail.com>
306
307ash: Ash Berlin <ash@cpan.org>
308
309bert: Norbert Csongradi <bert@cpan.org>
310
311blblack: Brandon L. Black <blblack@gmail.com>
312
313bluefeet: Aran Deltac <bluefeet@cpan.org>
314
315bphillips: Brian Phillips <bphillips@cpan.org>
316
317boghead: Bryan Beeley <cpan@beeley.org>
318
319bricas: Brian Cassidy <bricas@cpan.org>
320
321brunov: Bruno Vecchi <vecchi.b@gmail.com>
322
323caelum: Rafael Kitover <rkitover@cpan.org>
324
325caldrin: Maik Hentsche <maik.hentsche@amd.com>
326
327castaway: Jess Robinson
328
329claco: Christopher H. Laco
330
331clkao: CL Kao
332
333da5id: David Jack Olrik <djo@cpan.org>
334
335debolaz: Anders Nor Berle <berle@cpan.org>
336
337dew: Dan Thomas <dan@godders.org>
338
339dkubb: Dan Kubb <dan.kubb-cpan@onautopilot.com>
340
341dnm: Justin Wheeler <jwheeler@datademons.com>
342
343dpetrov: Dimitar Petrov <mitakaa@gmail.com>
344
345dwc: Daniel Westermann-Clark <danieltwc@cpan.org>
346
347dyfrgi: Michael Leuchtenburg <michael@slashhome.org>
348
349felliott: Fitz Elliott <fitz.elliott@gmail.com>
350
351freetime: Bill Moseley <moseley@hank.org>
352
353frew: Arthur Axel "fREW" Schmidt <frioux@gmail.com>
354
355goraxe: Gordon Irving <goraxe@cpan.org>
356
357gphat: Cory G Watson <gphat@cpan.org>
358
359Grant Street Group L<http://www.grantstreet.com/>
360
361groditi: Guillermo Roditi <groditi@cpan.org>
362
363Haarg: Graham Knop <haarg@haarg.org>
364
365hobbs: Andrew Rodland <arodland@cpan.org>
366
367ilmari: Dagfinn Ilmari MannsE<aring>ker <ilmari@ilmari.org>
368
369initself: Mike Baas <mike@initselftech.com>
370
371ironcamel: Naveed Massjouni <naveedm9@gmail.com>
372
373jawnsy: Jonathan Yu <jawnsy@cpan.org>
374
375jasonmay: Jason May <jason.a.may@gmail.com>
376
377jesper: Jesper Krogh
378
379jgoulah: John Goulah <jgoulah@cpan.org>
380
381jguenther: Justin Guenther <jguenther@cpan.org>
382
383jhannah: Jay Hannah <jay@jays.net>
384
385jnapiorkowski: John Napiorkowski <jjn1056@yahoo.com>
386
387jon: Jon Schutz <jjschutz@cpan.org>
388
389jshirley: J. Shirley <jshirley@gmail.com>
390
391kaare: Kaare Rasmussen
392
393konobi: Scott McWhirter
394
395littlesavage: Alexey Illarionov <littlesavage@orionet.ru>
396
397lukes: Luke Saunders <luke.saunders@gmail.com>
398
399marcus: Marcus Ramberg <mramberg@cpan.org>
400
401mattlaw: Matt Lawrence
402
403mattp: Matt Phillips <mattp@cpan.org>
404
405michaelr: Michael Reddick <michael.reddick@gmail.com>
406
407milki: Jonathan Chu <milki@rescomp.berkeley.edu>
408
409mstratman: Mark A. Stratman <stratman@gmail.com>
410
411ned: Neil de Carteret
412
413nigel: Nigel Metheringham <nigelm@cpan.org>
414
415ningu: David Kamholz <dkamholz@cpan.org>
416
417Nniuq: Ron "Quinn" Straight" <quinnfazigu@gmail.org>
418
419norbi: Norbert Buchmuller <norbi@nix.hu>
420
421nuba: Nuba Princigalli <nuba@cpan.org>
422
423Numa: Dan Sully <daniel@cpan.org>
424
425ovid: Curtis "Ovid" Poe <ovid@cpan.org>
426
427oyse: E<Oslash>ystein Torget <oystein.torget@dnv.com>
428
429paulm: Paul Makepeace
430
431penguin: K J Cheetham
432
433perigrin: Chris Prather <chris@prather.org>
434
435peter: Peter Collingbourne <peter@pcc.me.uk>
436
437Peter Valdemar ME<oslash>rch <peter@morch.com>
438
439phaylon: Robert Sedlacek <phaylon@dunkelheit.at>
440
441plu: Johannes Plunien <plu@cpan.org>
442
443Possum: Daniel LeWarne <possum@cpan.org>
444
445quicksilver: Jules Bean
446
447rafl: Florian Ragwitz <rafl@debian.org>
448
449rainboxx: Matthias Dietrich <perl@rb.ly>
450
451rbo: Robert Bohne <rbo@cpan.org>
452
453rbuels: Robert Buels <rmb32@cornell.edu>
454
455rdj: Ryan D Johnson <ryan@innerfence.com>
456
457ribasushi: Peter Rabbitson <ribasushi@cpan.org>
458
459rjbs: Ricardo Signes <rjbs@cpan.org>
460
461robkinyon: Rob Kinyon <rkinyon@cpan.org>
462
463Robert Olson <bob@rdolson.org>
464
465Roman: Roman Filippov <romanf@cpan.org>
466
467Sadrak: Felix Antonius Wilhelm Ostmann <sadrak@cpan.org>
468
469sc_: Just Another Perl Hacker
470
471scotty: Scotty Allen <scotty@scottyallen.com>
472
473semifor: Marc Mims <marc@questright.com>
474
475solomon: Jared Johnson <jaredj@nmgi.com>
476
477spb: Stephen Bennett <stephen@freenode.net>
478
479Squeeks <squeek@cpan.org>
480
481sszabo: Stephan Szabo <sszabo@bigpanda.com>
482
483talexb: Alex Beamish <talexb@gmail.com>
484
485tamias: Ronald J Kimball <rjk@tamias.net>
486
487teejay : Aaron Trevena <teejay@cpan.org>
488
489Todd Lipcon
490
491Tom Hukins
492
493tonvoon: Ton Voon <tonvoon@cpan.org>
494
495triode: Pete Gamache <gamache@cpan.org>
496
497typester: Daisuke Murase <typester@cpan.org>
498
499victori: Victor Igumnov <victori@cpan.org>
500
501wdh: Will Hawes
502
503willert: Sebastian Willert <willert@cpan.org>
504
505wreis: Wallace Reis <wreis@cpan.org>
506
507yrlnry: Mark Jason Dominus <mjd@plover.com>
508
509zamolxes: Bogdan Lucaciu <bogdan@wiz.ro>
510
511=head1 COPYRIGHT
512
513Copyright (c) 2005 - 2011 the DBIx::Class L</AUTHOR> and L</CONTRIBUTORS>
514as listed above.
515
516=head1 LICENSE
517
518This library is free software and may be distributed under the same terms
519as perl itself.
520
521=cut
 
# spent 2µs within DBIx::Class::CORE:match which was called: # once (2µs+0s) by parent::import at line 16
sub DBIx::Class::CORE:match; # opcode