2 package Debbugs::DB::Result::Bug;
4 # Created by DBIx::Class::Schema::Loader
5 # DO NOT MODIFY THE FIRST PART OF THIS FILE
9 Debbugs::DB::Result::Bug - Bugs
16 use base 'DBIx::Class::Core';
19 =head1 COMPONENTS LOADED
23 =item * L<DBIx::Class::InflateColumn::DateTime>
25 =item * L<DBIx::Class::TimeStamp>
31 __PACKAGE__->load_components("InflateColumn::DateTime", "TimeStamp");
37 __PACKAGE__->table("bug");
50 data_type: 'timestamp with time zone'
51 default_value: current_timestamp
53 original: {default_value => \"now()"}
59 data_type: 'timestamp with time zone'
60 default_value: current_timestamp
62 original: {default_value => \"now()"}
64 Time bug log was last modified
68 data_type: 'timestamp with time zone'
69 default_value: current_timestamp
71 original: {default_value => \"now()"}
73 Time bug status was last modified
81 True if bug has been archived
85 data_type: 'timestamp with time zone'
88 Time bug was last unarchived; null if bug has never been unarchived
93 default_value: (empty string)
96 Where bug has been forwarded to; empty if it has not been forwarded
101 default_value: (empty string)
104 Summary of the bug; empty if it has no summary
109 default_value: (empty string)
112 Outlook of the bug; empty if it has no outlook
133 Individual who did the -done; empty if it has never been -done
138 default_value: (empty string)
147 Individual who owns this bug; empty if no one owns it
152 default_value: (empty string)
161 Individual who submitted this bug; empty if there is no submitter
163 =head2 submitter_full
166 default_value: (empty string)
169 =head2 unknown_packages
172 default_value: (empty string)
175 Package name if the package is not known
179 __PACKAGE__->add_columns(
181 { data_type => "integer", is_nullable => 0 },
184 data_type => "timestamp with time zone",
185 default_value => \"current_timestamp",
187 original => { default_value => \"now()" },
191 data_type => "timestamp with time zone",
192 default_value => \"current_timestamp",
194 original => { default_value => \"now()" },
198 data_type => "timestamp with time zone",
199 default_value => \"current_timestamp",
201 original => { default_value => \"now()" },
204 { data_type => "boolean", default_value => \"false", is_nullable => 0 },
206 { data_type => "timestamp with time zone", is_nullable => 1 },
208 { data_type => "text", default_value => "", is_nullable => 0 },
210 { data_type => "text", default_value => "", is_nullable => 0 },
212 { data_type => "text", default_value => "", is_nullable => 0 },
214 { data_type => "text", is_nullable => 0 },
216 { data_type => "integer", is_foreign_key => 1, is_nullable => 0 },
218 { data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
220 { data_type => "text", default_value => "", is_nullable => 0 },
222 { data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
224 { data_type => "text", default_value => "", is_nullable => 0 },
226 { data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
228 { data_type => "text", default_value => "", is_nullable => 0 },
230 { data_type => "text", default_value => "", is_nullable => 0 },
243 __PACKAGE__->set_primary_key("id");
247 =head2 bug_affects_binpackages
251 Related object: L<Debbugs::DB::Result::BugAffectsBinpackage>
255 __PACKAGE__->has_many(
256 "bug_affects_binpackages",
257 "Debbugs::DB::Result::BugAffectsBinpackage",
258 { "foreign.bug" => "self.id" },
259 { cascade_copy => 0, cascade_delete => 0 },
262 =head2 bug_affects_srcpackages
266 Related object: L<Debbugs::DB::Result::BugAffectsSrcpackage>
270 __PACKAGE__->has_many(
271 "bug_affects_srcpackages",
272 "Debbugs::DB::Result::BugAffectsSrcpackage",
273 { "foreign.bug" => "self.id" },
274 { cascade_copy => 0, cascade_delete => 0 },
277 =head2 bug_binpackages
281 Related object: L<Debbugs::DB::Result::BugBinpackage>
285 __PACKAGE__->has_many(
287 "Debbugs::DB::Result::BugBinpackage",
288 { "foreign.bug" => "self.id" },
289 { cascade_copy => 0, cascade_delete => 0 },
292 =head2 bug_blocks_blocks
296 Related object: L<Debbugs::DB::Result::BugBlock>
300 __PACKAGE__->has_many(
302 "Debbugs::DB::Result::BugBlock",
303 { "foreign.blocks" => "self.id" },
304 { cascade_copy => 0, cascade_delete => 0 },
307 =head2 bug_blocks_bugs
311 Related object: L<Debbugs::DB::Result::BugBlock>
315 __PACKAGE__->has_many(
317 "Debbugs::DB::Result::BugBlock",
318 { "foreign.bug" => "self.id" },
319 { cascade_copy => 0, cascade_delete => 0 },
322 =head2 bug_merged_bugs
326 Related object: L<Debbugs::DB::Result::BugMerged>
330 __PACKAGE__->has_many(
332 "Debbugs::DB::Result::BugMerged",
333 { "foreign.bug" => "self.id" },
334 { cascade_copy => 0, cascade_delete => 0 },
337 =head2 bug_mergeds_merged
341 Related object: L<Debbugs::DB::Result::BugMerged>
345 __PACKAGE__->has_many(
346 "bug_mergeds_merged",
347 "Debbugs::DB::Result::BugMerged",
348 { "foreign.merged" => "self.id" },
349 { cascade_copy => 0, cascade_delete => 0 },
356 Related object: L<Debbugs::DB::Result::BugMessage>
360 __PACKAGE__->has_many(
362 "Debbugs::DB::Result::BugMessage",
363 { "foreign.bug" => "self.id" },
364 { cascade_copy => 0, cascade_delete => 0 },
367 =head2 bug_srcpackages
371 Related object: L<Debbugs::DB::Result::BugSrcpackage>
375 __PACKAGE__->has_many(
377 "Debbugs::DB::Result::BugSrcpackage",
378 { "foreign.bug" => "self.id" },
379 { cascade_copy => 0, cascade_delete => 0 },
382 =head2 bug_status_caches
386 Related object: L<Debbugs::DB::Result::BugStatusCache>
390 __PACKAGE__->has_many(
392 "Debbugs::DB::Result::BugStatusCache",
393 { "foreign.bug" => "self.id" },
394 { cascade_copy => 0, cascade_delete => 0 },
401 Related object: L<Debbugs::DB::Result::BugTag>
405 __PACKAGE__->has_many(
407 "Debbugs::DB::Result::BugTag",
408 { "foreign.bug" => "self.id" },
409 { cascade_copy => 0, cascade_delete => 0 },
416 Related object: L<Debbugs::DB::Result::BugUserTag>
420 __PACKAGE__->has_many(
422 "Debbugs::DB::Result::BugUserTag",
423 { "foreign.bug" => "self.id" },
424 { cascade_copy => 0, cascade_delete => 0 },
431 Related object: L<Debbugs::DB::Result::BugVer>
435 __PACKAGE__->has_many(
437 "Debbugs::DB::Result::BugVer",
438 { "foreign.bug" => "self.id" },
439 { cascade_copy => 0, cascade_delete => 0 },
446 Related object: L<Debbugs::DB::Result::Correspondent>
450 __PACKAGE__->belongs_to(
452 "Debbugs::DB::Result::Correspondent",
457 on_delete => "NO ACTION",
458 on_update => "NO ACTION",
466 Related object: L<Debbugs::DB::Result::Correspondent>
470 __PACKAGE__->belongs_to(
472 "Debbugs::DB::Result::Correspondent",
477 on_delete => "NO ACTION",
478 on_update => "NO ACTION",
486 Related object: L<Debbugs::DB::Result::Severity>
490 __PACKAGE__->belongs_to(
492 "Debbugs::DB::Result::Severity",
493 { id => "severity" },
494 { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" },
501 Related object: L<Debbugs::DB::Result::Correspondent>
505 __PACKAGE__->belongs_to(
507 "Debbugs::DB::Result::Correspondent",
508 { id => "submitter" },
512 on_delete => "NO ACTION",
513 on_update => "NO ACTION",
518 # Created by DBIx::Class::Schema::Loader v0.07045 @ 2016-09-24 14:51:07
519 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:iaipVETTaokcFNrICfIEAw
521 __PACKAGE__->many_to_many(tags => 'bug_tags','tag');
522 __PACKAGE__->many_to_many(user_tags => 'bug_user_tags','user_tag');
523 __PACKAGE__->many_to_many(srcpackages => 'bug_srcpackages','src_pkg');
524 __PACKAGE__->many_to_many(binpackages => 'bug_binpackages','bin_pkg');
525 __PACKAGE__->many_to_many(affects_binpackages => 'bug_affects_binpackages','bin_pkg');
526 __PACKAGE__->many_to_many(affects_srcpackages => 'bug_affects_srcpackages','src_pkg');
527 __PACKAGE__->many_to_many(messages => 'bug_messages','message');
529 sub sqlt_deploy_hook {
530 my ($self, $sqlt_table) = @_;
531 # CREATE INDEX bug_idx_owner ON bug(owner);
532 # CREATE INDEX bug_idx_submitter ON bug(submitter);
533 # CREATE INDEX bug_idx_done ON bug(done);
534 # CREATE INDEX bug_idx_forwarded ON bug(forwarded);
535 # CREATE INDEX bug_idx_last_modified ON bug(last_modified);
536 # CREATE INDEX bug_idx_severity ON bug(severity);
537 # CREATE INDEX bug_idx_creation ON bug(creation);
538 # CREATE INDEX bug_idx_log_modified ON bug(log_modified);
539 for my $idx (qw(owner submitter done forwarded last_modified),
540 qw(severity creation log_modified),
542 $sqlt_table->add_index(name => 'bug_idx'.$idx,
547 sub set_related_packages {
548 my ($self,$relationship,$pkgs,$pkg_cache) = @_;
551 if ($relationship =~ /binpackages/) {
552 for my $pkg (@{$pkgs}) {
554 $self->result_source->schema->resultset('BinPkg')->
555 get_bin_pkg_id($pkg);
557 } elsif ($relationship =~ /srcpackages/) {
558 for my $pkg (@{$pkgs}) {
560 $self->result_source->schema->resultset('SrcPkg')->
561 get_src_pkg_id($pkg);
564 croak "Unsupported relationship $relationship";
566 if ($relationship eq 'binpackages') {
567 $self->set_binpackages([map {{id => $_}} @pkg_ids]);
568 } elsif ($relationship eq 'srcpackages') {
569 $self->set_srcpackages([map {{id => $_}} @pkg_ids]);
570 } elsif ($relationship eq 'affects_binpackages') {
571 $self->set_affects_binpackages([map {{id => $_}} @pkg_ids]);
572 } elsif ($relationship eq 'affects_srcpackages') {
573 $self->set_affects_srcpackages([map {{id => $_}} @pkg_ids]);
575 croak "Unsupported relationship $relationship";
578 # You can replace this text with custom code or comments, and it will be preserved on regeneration