← Index
NYTProf Performance Profile   « line view »
For starman worker -M FindBin --max-requests 50 --workers 2 --user=kohadev-koha --group kohadev-koha --pid /var/run/koha/kohadev/plack.pid --daemonize --access-log /var/log/koha/kohadev/plack.log --error-log /var/log/koha/kohadev/plack-error.log -E deployment --socket /var/run/koha/kohadev/plack.sock /etc/koha/sites/kohadev/plack.psgi
  Run on Fri Jan 8 13:50:58 2016
Reported on Fri Jan 8 13:51:27 2016

Filename/usr/share/perl5/DBIx/Class/Relationship/BelongsTo.pm
StatementsExecuted 2365 statements in 10.3ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
164164898.52ms98.2msDBIx::Class::Relationship::BelongsTo::::belongs_toDBIx::Class::Relationship::BelongsTo::belongs_to
37231604µs604µsDBIx::Class::Relationship::BelongsTo::::CORE:matchDBIx::Class::Relationship::BelongsTo::CORE:match (opcode)
11115µs23µsDBIx::Class::Relationship::BelongsTo::::BEGIN@7DBIx::Class::Relationship::BelongsTo::BEGIN@7
1118µs127µsDBIx::Class::Relationship::BelongsTo::::BEGIN@10DBIx::Class::Relationship::BelongsTo::BEGIN@10
1118µs30µsDBIx::Class::Relationship::BelongsTo::::BEGIN@9DBIx::Class::Relationship::BelongsTo::BEGIN@9
1117µs13µsDBIx::Class::Relationship::BelongsTo::::BEGIN@8DBIx::Class::Relationship::BelongsTo::BEGIN@8
0000s0sDBIx::Class::Relationship::BelongsTo::::__ANON__[:46]DBIx::Class::Relationship::BelongsTo::__ANON__[:46]
0000s0sDBIx::Class::Relationship::BelongsTo::::__ANON__[:52]DBIx::Class::Relationship::BelongsTo::__ANON__[:52]
0000s0sDBIx::Class::Relationship::BelongsTo::::catch {...} DBIx::Class::Relationship::BelongsTo::catch {...}
0000s0sDBIx::Class::Relationship::BelongsTo::::try {...} DBIx::Class::Relationship::BelongsTo::try {...}
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package # hide from PAUSE
2 DBIx::Class::Relationship::BelongsTo;
3
4# Documentation for these methods can be found in
5# DBIx::Class::Relationship
6
7237µs231µs
# spent 23µs (15+8) within DBIx::Class::Relationship::BelongsTo::BEGIN@7 which was called: # once (15µs+8µs) by Class::C3::Componentised::ensure_class_loaded at line 7
use strict;
# spent 23µs making 1 call to DBIx::Class::Relationship::BelongsTo::BEGIN@7 # spent 8µs making 1 call to strict::import
8230µs218µs
# spent 13µs (7+5) within DBIx::Class::Relationship::BelongsTo::BEGIN@8 which was called: # once (7µs+5µs) by Class::C3::Componentised::ensure_class_loaded at line 8
use warnings;
# spent 13µs making 1 call to DBIx::Class::Relationship::BelongsTo::BEGIN@8 # spent 5µs making 1 call to warnings::import
9249µs251µs
# spent 30µs (8+22) within DBIx::Class::Relationship::BelongsTo::BEGIN@9 which was called: # once (8µs+22µs) by Class::C3::Componentised::ensure_class_loaded at line 9
use Try::Tiny;
# spent 30µs making 1 call to DBIx::Class::Relationship::BelongsTo::BEGIN@9 # spent 22µs making 1 call to Exporter::import
102690µs2245µs
# spent 127µs (8+118) within DBIx::Class::Relationship::BelongsTo::BEGIN@10 which was called: # once (8µs+118µs) by Class::C3::Componentised::ensure_class_loaded at line 10
use namespace::clean;
# spent 127µs making 1 call to DBIx::Class::Relationship::BelongsTo::BEGIN@10 # spent 118µs making 1 call to namespace::clean::import
11
1212µsour %_pod_inherit_config =
13 (
14 class_map => { 'DBIx::Class::Relationship::BelongsTo' => 'DBIx::Class::Relationship' }
15 );
16
17
# spent 98.2ms (8.52+89.6) within DBIx::Class::Relationship::BelongsTo::belongs_to which was called 164 times, avg 599µs/call: # once (119µs+10.4ms) by Class::C3::Componentised::ensure_class_loaded at line 347 of Koha/Schema/Result/Biblioitem.pm # once (56µs+4.92ms) by Class::C3::Componentised::ensure_class_loaded at line 417 of Koha/Schema/Result/Aqorder.pm # once (69µs+4.68ms) by Class::C3::Componentised::ensure_class_loaded at line 57 of Koha/Schema/Result/MatcherMatchpoint.pm # once (73µs+1.83ms) by Class::C3::Componentised::ensure_class_loaded at line 97 of Koha/Schema/Result/TagsApproval.pm # once (44µs+1.80ms) by Class::C3::Componentised::ensure_class_loaded at line 159 of Koha/Schema/Result/CourseItem.pm # once (62µs+1.69ms) by Class::C3::Componentised::ensure_class_loaded at line 404 of Koha/Schema/Result/Subscription.pm # once (47µs+1.36ms) by Class::C3::Componentised::ensure_class_loaded at line 436 of Koha/Schema/Result/Item.pm # once (67µs+1.33ms) by Class::C3::Componentised::ensure_class_loaded at line 384 of Koha/Schema/Result/Subscription.pm # once (116µs+1.20ms) by Class::C3::Componentised::ensure_class_loaded at line 130 of Koha/Schema/Result/Aqbasketgroup.pm # once (790µs+430µs) by Class::C3::Componentised::ensure_class_loaded at line 131 of Koha/Schema/Result/Aqinvoice.pm # once (40µs+1.06ms) by Class::C3::Componentised::ensure_class_loaded at line 397 of Koha/Schema/Result/Aqorder.pm # once (57µs+1.00ms) by Class::C3::Componentised::ensure_class_loaded at line 86 of Koha/Schema/Result/Permission.pm # once (20µs+1.01ms) by Class::C3::Componentised::ensure_class_loaded at line 452 of Koha/Schema/Result/Aqorder.pm # once (56µs+964µs) by Class::C3::Componentised::ensure_class_loaded at line 322 of Koha/Schema/Result/Aqbookseller.pm # once (60µs+932µs) by Class::C3::Componentised::ensure_class_loaded at line 129 of Koha/Schema/Result/CreatorBatch.pm # once (44µs+885µs) by Class::C3::Componentised::ensure_class_loaded at line 149 of Koha/Schema/Result/CreatorBatch.pm # once (20µs+899µs) by Class::C3::Componentised::ensure_class_loaded at line 531 of Koha/Schema/Result/Item.pm # once (58µs+844µs) by Class::C3::Componentised::ensure_class_loaded at line 199 of Koha/Schema/Result/Aqbasket.pm # once (19µs+883µs) by Class::C3::Componentised::ensure_class_loaded at line 139 of Koha/Schema/Result/HoldFillTarget.pm # once (53µs+842µs) by Class::C3::Componentised::ensure_class_loaded at line 93 of Koha/Schema/Result/Discharge.pm # once (44µs+844µs) by Class::C3::Componentised::ensure_class_loaded at line 117 of Koha/Schema/Result/AqordersTransfer.pm # once (58µs+817µs) by Class::C3::Componentised::ensure_class_loaded at line 93 of Koha/Schema/Result/ClassSource.pm # once (70µs+801µs) by Class::C3::Componentised::ensure_class_loaded at line 79 of Koha/Schema/Result/BorrowerAttributeTypesBranch.pm # once (56µs+807µs) by Class::C3::Componentised::ensure_class_loaded at line 97 of Koha/Schema/Result/AqordersTransfer.pm # once (28µs+830µs) by Class::C3::Componentised::ensure_class_loaded at line 95 of Koha/Schema/Result/TagsIndex.pm # once (48µs+805µs) by Class::C3::Componentised::ensure_class_loaded at line 82 of Koha/Schema/Result/AqordersItem.pm # once (46µs+807µs) by Class::C3::Componentised::ensure_class_loaded at line 164 of Koha/Schema/Result/CreatorBatch.pm # once (58µs+790µs) by Class::C3::Componentised::ensure_class_loaded at line 151 of Koha/Schema/Result/Virtualshelve.pm # once (57µs+784µs) by Class::C3::Componentised::ensure_class_loaded at line 59 of Koha/Schema/Result/BorrowerAttributeTypesBranch.pm # once (43µs+778µs) by Class::C3::Componentised::ensure_class_loaded at line 254 of Koha/Schema/Result/Aqbasket.pm # once (19µs+786µs) by Class::C3::Componentised::ensure_class_loaded at line 133 of Koha/Schema/Result/Virtualshelfcontent.pm # once (20µs+734µs) by Class::C3::Componentised::ensure_class_loaded at line 234 of Koha/Schema/Result/Aqbasket.pm # once (52µs+699µs) by Class::C3::Componentised::ensure_class_loaded at line 122 of Koha/Schema/Result/AuthTagStructure.pm # once (48µs+693µs) by Class::C3::Componentised::ensure_class_loaded at line 342 of Koha/Schema/Result/Aqbookseller.pm # once (18µs+699µs) by Class::C3::Componentised::ensure_class_loaded at line 86 of Koha/Schema/Result/Serialitem.pm # once (58µs+658µs) by Class::C3::Componentised::ensure_class_loaded at line 305 of Koha/Schema/Result/Suggestion.pm # once (23µs+679µs) by Class::C3::Componentised::ensure_class_loaded at line 115 of Koha/Schema/Result/Subscriptionroutinglist.pm # once (68µs+630µs) by Class::C3::Componentised::ensure_class_loaded at line 121 of Koha/Schema/Result/CourseReserve.pm # once (78µs+614µs) by Class::C3::Componentised::ensure_class_loaded at line 94 of Koha/Schema/Result/ItemsSearchField.pm # once (55µs+623µs) by Class::C3::Componentised::ensure_class_loaded at line 118 of Koha/Schema/Result/Branchtransfer.pm # once (55µs+622µs) by Class::C3::Componentised::ensure_class_loaded at line 109 of Koha/Schema/Result/BorrowerSync.pm # once (56µs+604µs) by Class::C3::Componentised::ensure_class_loaded at line 104 of Koha/Schema/Result/TagAll.pm # once (57µs+588µs) by Class::C3::Componentised::ensure_class_loaded at line 135 of Koha/Schema/Result/Letter.pm # once (56µs+574µs) by Class::C3::Componentised::ensure_class_loaded at line 88 of Koha/Schema/Result/BranchItemRule.pm # once (40µs+570µs) by Class::C3::Componentised::ensure_class_loaded at line 133 of Koha/Schema/Result/Branchtransfer.pm # once (42µs+564µs) by Class::C3::Componentised::ensure_class_loaded at line 148 of Koha/Schema/Result/Branchtransfer.pm # once (39µs+548µs) by Class::C3::Componentised::ensure_class_loaded at line 103 of Koha/Schema/Result/BranchItemRule.pm # once (19µs+558µs) by Class::C3::Componentised::ensure_class_loaded at line 146 of Koha/Schema/Result/Aqinvoice.pm # once (58µs+482µs) by Class::C3::Componentised::ensure_class_loaded at line 80 of Koha/Schema/Result/TagsIndex.pm # once (18µs+479µs) by Class::C3::Componentised::ensure_class_loaded at line 89 of Koha/Schema/Result/BorrowerAttribute.pm # once (18µs+477µs) by Class::C3::Componentised::ensure_class_loaded at line 102 of Koha/Schema/Result/BranchBorrowerCircRule.pm # once (162µs+330µs) by Class::C3::Componentised::ensure_class_loaded at line 71 of Koha/Schema/Result/Aqbudgetborrower.pm # once (39µs+447µs) by Class::C3::Componentised::ensure_class_loaded at line 72 of Koha/Schema/Result/MatcherMatchpoint.pm # once (64µs+402µs) by Class::C3::Componentised::ensure_class_loaded at line 76 of Koha/Schema/Result/Patronimage.pm # once (54µs+407µs) by Class::C3::Componentised::ensure_class_loaded at line 71 of Koha/Schema/Result/Aqbasketuser.pm # once (72µs+377µs) by Class::C3::Componentised::ensure_class_loaded at line 76 of Koha/Schema/Result/DefaultBorrowerCircRule.pm # once (62µs+386µs) by Class::C3::Componentised::ensure_class_loaded at line 156 of Koha/Schema/Result/MessageQueue.pm # once (63µs+368µs) by Class::C3::Componentised::ensure_class_loaded at line 91 of Koha/Schema/Result/Biblioimage.pm # once (60µs+366µs) by Class::C3::Componentised::ensure_class_loaded at line 131 of Koha/Schema/Result/BorrowerDebarment.pm # once (56µs+369µs) by Class::C3::Componentised::ensure_class_loaded at line 204 of Koha/Schema/Result/OldReserve.pm # once (65µs+359µs) by Class::C3::Componentised::ensure_class_loaded at line 87 of Koha/Schema/Result/BranchBorrowerCircRule.pm # once (57µs+366µs) by Class::C3::Componentised::ensure_class_loaded at line 78 of Koha/Schema/Result/UserPermission.pm # once (59µs+364µs) by Class::C3::Componentised::ensure_class_loaded at line 91 of Koha/Schema/Result/DefaultBranchCircRule.pm # once (73µs+346µs) by Class::C3::Componentised::ensure_class_loaded at line 89 of Koha/Schema/Result/TransportCost.pm # once (62µs+357µs) by Class::C3::Componentised::ensure_class_loaded at line 100 of Koha/Schema/Result/Subscriptionroutinglist.pm # once (55µs+364µs) by Class::C3::Componentised::ensure_class_loaded at line 97 of Koha/Schema/Result/Virtualshelfshare.pm # once (57µs+361µs) by Class::C3::Componentised::ensure_class_loaded at line 189 of Koha/Schema/Result/Accountline.pm # once (60µs+357µs) by Class::C3::Componentised::ensure_class_loaded at line 139 of Koha/Schema/Result/OpacNews.pm # once (18µs+386µs) by Class::C3::Componentised::ensure_class_loaded at line 109 of Koha/Schema/Result/HoldFillTarget.pm # once (56µs+346µs) by Class::C3::Componentised::ensure_class_loaded at line 94 of Koha/Schema/Result/HoldFillTarget.pm # once (57µs+338µs) by Class::C3::Componentised::ensure_class_loaded at line 71 of Koha/Schema/Result/CourseInstructor.pm # once (67µs+328µs) by Class::C3::Componentised::ensure_class_loaded at line 321 of Koha/Schema/Result/Biblioitem.pm # once (59µs+335µs) by Class::C3::Componentised::ensure_class_loaded at line 77 of Koha/Schema/Result/PatronListPatron.pm # once (57µs+336µs) by Class::C3::Componentised::ensure_class_loaded at line 204 of Koha/Schema/Result/AuthSubfieldStructure.pm # once (58µs+336µs) by Class::C3::Componentised::ensure_class_loaded at line 77 of Koha/Schema/Result/PatronList.pm # once (108µs+285µs) by Class::C3::Componentised::ensure_class_loaded at line 80 of Koha/Schema/Result/ImportAuth.pm # once (56µs+337µs) by Class::C3::Componentised::ensure_class_loaded at line 114 of Koha/Schema/Result/BorrowerFile.pm # once (59µs+334µs) by Class::C3::Componentised::ensure_class_loaded at line 93 of Koha/Schema/Result/Accountoffset.pm # once (61µs+329µs) by Class::C3::Componentised::ensure_class_loaded at line 218 of Koha/Schema/Result/Reserve.pm # once (58µs+332µs) by Class::C3::Componentised::ensure_class_loaded at line 156 of Koha/Schema/Result/Aqcontact.pm # once (54µs+335µs) by Class::C3::Componentised::ensure_class_loaded at line 98 of Koha/Schema/Result/Virtualshelfcontent.pm # once (55µs+330µs) by Class::C3::Componentised::ensure_class_loaded at line 105 of Koha/Schema/Result/ItemsLastBorrower.pm # once (58µs+327µs) by Class::C3::Componentised::ensure_class_loaded at line 192 of Koha/Schema/Result/Issue.pm # once (54µs+328µs) by Class::C3::Componentised::ensure_class_loaded at line 87 of Koha/Schema/Result/Branchrelation.pm # once (61µs+321µs) by Class::C3::Componentised::ensure_class_loaded at line 92 of Koha/Schema/Result/Rating.pm # once (56µs+325µs) by Class::C3::Componentised::ensure_class_loaded at line 177 of Koha/Schema/Result/OldIssue.pm # once (52µs+319µs) by Class::C3::Componentised::ensure_class_loaded at line 71 of Koha/Schema/Result/Serialitem.pm # once (53µs+318µs) by Class::C3::Componentised::ensure_class_loaded at line 71 of Koha/Schema/Result/AqorderUser.pm # once (54µs+314µs) by Class::C3::Componentised::ensure_class_loaded at line 85 of Koha/Schema/Result/OverduerulesTransportType.pm # once (52µs+315µs) by Class::C3::Componentised::ensure_class_loaded at line 74 of Koha/Schema/Result/BorrowerAttribute.pm # once (51µs+316µs) by Class::C3::Componentised::ensure_class_loaded at line 103 of Koha/Schema/Result/Review.pm # once (54µs+308µs) by Class::C3::Componentised::ensure_class_loaded at line 125 of Koha/Schema/Result/BorrowerMessagePreference.pm # once (64µs+294µs) by Class::C3::Componentised::ensure_class_loaded at line 58 of Koha/Schema/Result/AuthorisedValuesBranch.pm # once (57µs+301µs) by Class::C3::Componentised::ensure_class_loaded at line 59 of Koha/Schema/Result/CategoriesBranch.pm # once (56µs+298µs) by Class::C3::Componentised::ensure_class_loaded at line 771 of Koha/Schema/Result/Borrower.pm # once (49µs+304µs) by Class::C3::Componentised::ensure_class_loaded at line 77 of Koha/Schema/Result/DefaultBranchItemRule.pm # once (77µs+272µs) by Class::C3::Componentised::ensure_class_loaded at line 107 of Koha/Schema/Result/Collection.pm # once (49µs+289µs) by Class::C3::Componentised::ensure_class_loaded at line 472 of Koha/Schema/Result/Aqorder.pm # once (80µs+256µs) by Class::C3::Componentised::ensure_class_loaded at line 101 of Koha/Schema/Result/AdditionalFieldValue.pm # once (79µs+256µs) by Class::C3::Componentised::ensure_class_loaded at line 112 of Koha/Schema/Result/ImportItem.pm # once (74µs+259µs) by Class::C3::Componentised::ensure_class_loaded at line 108 of Koha/Schema/Result/AqbudgetsPlanning.pm # once (43µs+290µs) by Class::C3::Componentised::ensure_class_loaded at line 219 of Koha/Schema/Result/Aqbasket.pm # once (67µs+258µs) by Class::C3::Componentised::ensure_class_loaded at line 85 of Koha/Schema/Result/Matchcheck.pm # once (80µs+242µs) by Class::C3::Componentised::ensure_class_loaded at line 229 of Koha/Schema/Result/MarcModificationTemplateAction.pm # once (69µs+252µs) by Class::C3::Componentised::ensure_class_loaded at line 85 of Koha/Schema/Result/BorrowerMessageTransportPreference.pm # once (48µs+272µs) by Class::C3::Componentised::ensure_class_loaded at line 115 of Koha/Schema/Result/Aqcontract.pm # once (43µs+277µs) by Class::C3::Componentised::ensure_class_loaded at line 179 of Koha/Schema/Result/CourseItem.pm # once (66µs+252µs) by Class::C3::Componentised::ensure_class_loaded at line 64 of Koha/Schema/Result/ImportRecordMatch.pm # once (23µs+293µs) by Class::C3::Componentised::ensure_class_loaded at line 159 of Koha/Schema/Result/OpacNews.pm # once (63µs+250µs) by Class::C3::Componentised::ensure_class_loaded at line 637 of Koha/Schema/Result/Item.pm # once (64µs+242µs) by Class::C3::Componentised::ensure_class_loaded at line 87 of Koha/Schema/Result/OaiSetsMapping.pm # once (67µs+239µs) by Class::C3::Componentised::ensure_class_loaded at line 117 of Koha/Schema/Result/MatchpointComponent.pm # once (65µs+238µs) by Class::C3::Componentised::ensure_class_loaded at line 72 of Koha/Schema/Result/MatchpointComponentNorm.pm # once (62µs+239µs) by Class::C3::Componentised::ensure_class_loaded at line 70 of Koha/Schema/Result/OaiSetsBiblio.pm # once (64µs+235µs) by Class::C3::Componentised::ensure_class_loaded at line 112 of Koha/Schema/Result/ImportBiblio.pm # once (40µs+258µs) by Class::C3::Componentised::ensure_class_loaded at line 119 of Koha/Schema/Result/TagAll.pm # once (20µs+274µs) by Class::C3::Componentised::ensure_class_loaded at line 73 of Koha/Schema/Result/AuthorisedValuesBranch.pm # once (58µs+229µs) by Class::C3::Componentised::ensure_class_loaded at line 57 of Koha/Schema/Result/OaiSetsDescription.pm # once (59µs+228µs) by Class::C3::Componentised::ensure_class_loaded at line 130 of Koha/Schema/Result/MessageTransport.pm # once (16µs+261µs) by Class::C3::Componentised::ensure_class_loaded at line 284 of Koha/Schema/Result/Reserve.pm # once (23µs+250µs) by Class::C3::Componentised::ensure_class_loaded at line 511 of Koha/Schema/Result/Item.pm # once (19µs+254µs) by Class::C3::Componentised::ensure_class_loaded at line 102 of Koha/Schema/Result/BorrowerMessageTransportPreference.pm # once (18µs+248µs) by Class::C3::Componentised::ensure_class_loaded at line 123 of Koha/Schema/Result/Review.pm # once (36µs+225µs) by Class::C3::Componentised::ensure_class_loaded at line 437 of Koha/Schema/Result/Aqorder.pm # once (18µs+242µs) by Class::C3::Componentised::ensure_class_loaded at line 164 of Koha/Schema/Result/MessageTransport.pm # once (22µs+214µs) by Class::C3::Componentised::ensure_class_loaded at line 786 of Koha/Schema/Result/Borrower.pm # once (20µs+214µs) by Class::C3::Componentised::ensure_class_loaded at line 248 of Koha/Schema/Result/Reserve.pm # once (75µs+155µs) by Class::C3::Componentised::ensure_class_loaded at line 149 of Koha/Schema/Result/MessageTransport.pm # once (21µs+204µs) by Class::C3::Componentised::ensure_class_loaded at line 268 of Koha/Schema/Result/Reserve.pm # once (33µs+193µs) by Class::C3::Componentised::ensure_class_loaded at line 100 of Koha/Schema/Result/OverduerulesTransportType.pm # once (21µs+204µs) by Class::C3::Componentised::ensure_class_loaded at line 176 of Koha/Schema/Result/MessageQueue.pm # once (18µs+206µs) by Class::C3::Componentised::ensure_class_loaded at line 86 of Koha/Schema/Result/AqorderUser.pm # once (31µs+188µs) by Class::C3::Componentised::ensure_class_loaded at line 93 of Koha/Schema/Result/UserPermission.pm # once (20µs+196µs) by Class::C3::Componentised::ensure_class_loaded at line 145 of Koha/Schema/Result/BorrowerMessagePreference.pm # once (29µs+186µs) by Class::C3::Componentised::ensure_class_loaded at line 92 of Koha/Schema/Result/PatronListPatron.pm # once (35µs+180µs) by Class::C3::Componentised::ensure_class_loaded at line 296 of Koha/Schema/Result/Reserve.pm # once (20µs+194µs) by Class::C3::Componentised::ensure_class_loaded at line 224 of Koha/Schema/Result/OldReserve.pm # once (54µs+159µs) by Class::C3::Componentised::ensure_class_loaded at line 220 of Koha/Schema/Result/ImportRecord.pm # once (28µs+183µs) by Class::C3::Componentised::ensure_class_loaded at line 86 of Koha/Schema/Result/Aqbudgetborrower.pm # once (20µs+191µs) by Class::C3::Componentised::ensure_class_loaded at line 212 of Koha/Schema/Result/Issue.pm # once (20µs+191µs) by Class::C3::Componentised::ensure_class_loaded at line 86 of Koha/Schema/Result/Aqbasketuser.pm # once (42µs+166µs) by Class::C3::Componentised::ensure_class_loaded at line 1182 of Koha/Schema/Result/Borrower.pm # once (18µs+190µs) by Class::C3::Componentised::ensure_class_loaded at line 104 of Koha/Schema/Result/TransportCost.pm # once (28µs+180µs) by Class::C3::Componentised::ensure_class_loaded at line 228 of Koha/Schema/Result/Issue.pm # once (18µs+189µs) by Class::C3::Componentised::ensure_class_loaded at line 117 of Koha/Schema/Result/Virtualshelfshare.pm # once (18µs+187µs) by Class::C3::Componentised::ensure_class_loaded at line 107 of Koha/Schema/Result/Rating.pm # once (22µs+184µs) by Class::C3::Componentised::ensure_class_loaded at line 79 of Koha/Schema/Result/CategoriesBranch.pm # once (19µs+186µs) by Class::C3::Componentised::ensure_class_loaded at line 244 of Koha/Schema/Result/OldReserve.pm # once (18µs+186µs) by Class::C3::Componentised::ensure_class_loaded at line 102 of Koha/Schema/Result/Branchrelation.pm # once (27µs+176µs) by Class::C3::Componentised::ensure_class_loaded at line 86 of Koha/Schema/Result/CourseInstructor.pm # once (18µs+185µs) by Class::C3::Componentised::ensure_class_loaded at line 124 of Koha/Schema/Result/HoldFillTarget.pm # once (18µs+185µs) by Class::C3::Componentised::ensure_class_loaded at line 233 of Koha/Schema/Result/Reserve.pm # once (19µs+182µs) by Class::C3::Componentised::ensure_class_loaded at line 113 of Koha/Schema/Result/Virtualshelfcontent.pm # once (18µs+181µs) by Class::C3::Componentised::ensure_class_loaded at line 204 of Koha/Schema/Result/Accountline.pm # once (19µs+178µs) by Class::C3::Componentised::ensure_class_loaded at line 197 of Koha/Schema/Result/OldIssue.pm # once (18µs+178µs) by Class::C3::Componentised::ensure_class_loaded at line 120 of Koha/Schema/Result/ItemsLastBorrower.pm # once (51µs+144µs) by Class::C3::Componentised::ensure_class_loaded at line 116 of Koha/Schema/Result/Matchpoint.pm # once (50µs+145µs) by Class::C3::Componentised::ensure_class_loaded at line 247 of Koha/Schema/Result/Issue.pm # once (28µs+158µs) by Class::C3::Componentised::ensure_class_loaded at line 165 of Koha/Schema/Result/BorrowerMessagePreference.pm # once (24µs+137µs) by Class::C3::Componentised::ensure_class_loaded at line 235 of Koha/Schema/Result/Issue.pm # once (30µs+131µs) by Class::C3::Componentised::ensure_class_loaded at line 136 of Koha/Schema/Result/CourseReserve.pm # once (25µs+134µs) by Class::C3::Componentised::ensure_class_loaded at line 639 of Koha/Schema/Result/Item.pm # once (25µs+134µs) by Class::C3::Componentised::ensure_class_loaded at line 100 of Koha/Schema/Result/Matchcheck.pm # once (23µs+135µs) by Class::C3::Componentised::ensure_class_loaded at line 115 of Koha/Schema/Result/Matchcheck.pm
sub belongs_to {
18164122µs my ($class, $rel, $f_class, $cond, $attrs) = @_;
19
20 # assume a foreign key constraint unless defined otherwise
21164224µs $attrs->{is_foreign_key_constraint} = 1
22 if not exists $attrs->{is_foreign_key_constraint};
23164144µs $attrs->{undef_on_null_fk} = 1
24 if not exists $attrs->{undef_on_null_fk};
25
26 # no join condition or just a column name
27164134µs if (!ref $cond) {
28
292400ns my ($f_key, $guess);
3022µs if (defined $cond and length $cond) {
312700ns $f_key = $cond;
3222µs $guess = "caller specified foreign key '$f_key'";
33 }
34 else {
35 $f_key = $rel;
36 $guess = "using given relationship name '$rel' as foreign key column name";
37 }
38
3924µs226µs $class->throw_exception(
# spent 26µs making 2 calls to DBIx::Class::ResultSourceProxy::has_column, avg 13µs/call
40 "No such column '$f_key' declared yet on ${class} ($guess)"
41 ) unless $class->has_column($f_key);
42
43212µs20s $class->ensure_class_loaded($f_class);
# spent 10.2ms making 2 calls to Class::C3::Componentised::ensure_class_loaded, avg 5.08ms/call, recursion: max depth 1, sum of overlapping time 10.2ms
44 my $f_rsrc = try {
4525µs224µs $f_class->result_source_instance;
46 }
47 catch {
48 $class->throw_exception(
49 "Foreign class '$f_class' does not seem to be a Result class "
50 . "(or it simply did not load entirely due to a circular relation chain)"
51 );
52290µs4121µs };
# spent 95µs making 2 calls to Try::Tiny::try, avg 48µs/call # spent 26µs making 2 calls to Try::Tiny::catch, avg 13µs/call
53
54217µs243µs my $pri = $f_rsrc->_single_pri_col_or_die;
# spent 43µs making 2 calls to DBIx::Class::ResultSource::_single_pri_col_or_die, avg 21µs/call
55
5626µs $cond = { "foreign.${pri}" => "self.${f_key}" };
57
58 }
59 # explicit join condition
60 else {
61162125µs if (ref $cond eq 'HASH') { # ARRAY is also valid
6216225µs my $cond_rel;
63 # FIXME This loop is ridiculously incomplete and dangerous
64 # staving off changes until implmentation of the swindon consensus
65162243µs for (keys %$cond) {
66165601µs165202µs if (m/\./) { # Explicit join condition
# spent 202µs making 165 calls to DBIx::Class::Relationship::BelongsTo::CORE:match, avg 1µs/call
67 $cond_rel = $cond;
68 last;
69 }
70165510µs $cond_rel->{"foreign.$_"} = "self.".$cond->{$_};
71 }
7216266µs $cond = $cond_rel;
73 }
74 }
75
761643.74ms3243.84ms my $acc_type = (
# spent 3.54ms making 162 calls to DBIx::Class::ResultSourceProxy::has_column, avg 22µs/call # spent 294µs making 162 calls to DBIx::Class::Relationship::BelongsTo::CORE:match, avg 2µs/call
77 ref $cond eq 'HASH'
78 and
79 keys %$cond == 1
80 and
81 (keys %$cond)[0] =~ /^foreign\./
82 and
83 $class->has_column($rel)
84 ) ? 'filter' : 'single';
85
8645302µs45107µs my $fk_columns = ($acc_type eq 'single' and ref $cond eq 'HASH')
# spent 107µs making 45 calls to DBIx::Class::Relationship::BelongsTo::CORE:match, avg 2µs/call
87164249µs ? { map { $_ =~ /^self\.(.+)/ ? ( $1 => 1 ) : () } (values %$cond ) }
88 : undef
89 ;
90
91 $class->add_relationship($rel, $f_class,
92 $cond,
93 {
94 is_depends_on => 1,
95 accessor => $acc_type,
96 $fk_columns ? ( fk_columns => $fk_columns ) : (),
971642.14ms16475.1ms %{$attrs || {}}
# spent 75.1ms making 164 calls to DBIx::Class::ResultSourceProxy::add_relationship, avg 458µs/call
98 }
99 );
100
101164714µs return 1;
102}
103
10413µs187µs1;
# spent 87µs making 1 call to B::Hooks::EndOfScope::XS::__ANON__
 
# spent 604µs within DBIx::Class::Relationship::BelongsTo::CORE:match which was called 372 times, avg 2µs/call: # 165 times (202µs+0s) by DBIx::Class::Relationship::BelongsTo::belongs_to at line 66, avg 1µs/call # 162 times (294µs+0s) by DBIx::Class::Relationship::BelongsTo::belongs_to at line 76, avg 2µs/call # 45 times (107µs+0s) by DBIx::Class::Relationship::BelongsTo::belongs_to at line 86, avg 2µs/call
sub DBIx::Class::Relationship::BelongsTo::CORE:match; # opcode