=item * L<DBIx::Class::InflateColumn::DateTime>
+=item * L<DBIx::Class::TimeStamp>
+
=back
=cut
-__PACKAGE__->load_components("InflateColumn::DateTime");
+__PACKAGE__->load_components("InflateColumn::DateTime", "TimeStamp");
=head1 TABLE: C<bug>
Package name if the package is not known
+=head2 unknown_affects
+
+ data_type: 'text'
+ default_value: (empty string)
+ is_nullable: 0
+
+Package name if the affected package is not known
+
=cut
__PACKAGE__->add_columns(
{ data_type => "text", default_value => "", is_nullable => 0 },
"unknown_packages",
{ data_type => "text", default_value => "", is_nullable => 0 },
+ "unknown_affects",
+ { data_type => "text", default_value => "", is_nullable => 0 },
);
=head1 PRIMARY KEY
=head1 RELATIONS
+=head2 bug_affects_binpackages
+
+Type: has_many
+
+Related object: L<Debbugs::DB::Result::BugAffectsBinpackage>
+
+=cut
+
+__PACKAGE__->has_many(
+ "bug_affects_binpackages",
+ "Debbugs::DB::Result::BugAffectsBinpackage",
+ { "foreign.bug" => "self.id" },
+ { cascade_copy => 0, cascade_delete => 0 },
+);
+
+=head2 bug_affects_srcpackages
+
+Type: has_many
+
+Related object: L<Debbugs::DB::Result::BugAffectsSrcpackage>
+
+=cut
+
+__PACKAGE__->has_many(
+ "bug_affects_srcpackages",
+ "Debbugs::DB::Result::BugAffectsSrcpackage",
+ { "foreign.bug" => "self.id" },
+ { cascade_copy => 0, cascade_delete => 0 },
+);
+
=head2 bug_binpackages
Type: has_many
{ cascade_copy => 0, cascade_delete => 0 },
);
+=head2 bug_mergeds_merged
+
+Type: has_many
+
+Related object: L<Debbugs::DB::Result::BugMerged>
+
+=cut
+
+__PACKAGE__->has_many(
+ "bug_mergeds_merged",
+ "Debbugs::DB::Result::BugMerged",
+ { "foreign.merged" => "self.id" },
+ { cascade_copy => 0, cascade_delete => 0 },
+);
+
=head2 bug_messages
Type: has_many
{ cascade_copy => 0, cascade_delete => 0 },
);
-=head2 bug_vers
+=head2 bug_user_tags
Type: has_many
-Related object: L<Debbugs::DB::Result::BugVer>
+Related object: L<Debbugs::DB::Result::BugUserTag>
=cut
__PACKAGE__->has_many(
- "bug_vers",
- "Debbugs::DB::Result::BugVer",
+ "bug_user_tags",
+ "Debbugs::DB::Result::BugUserTag",
{ "foreign.bug" => "self.id" },
{ cascade_copy => 0, cascade_delete => 0 },
);
-=head2 bugs_merged_merged
+=head2 bug_vers
Type: has_many
-Related object: L<Debbugs::DB::Result::BugMerged>
+Related object: L<Debbugs::DB::Result::BugVer>
=cut
__PACKAGE__->has_many(
- "bugs_merged_merged",
- "Debbugs::DB::Result::BugMerged",
- { "foreign.merged" => "self.id" },
+ "bug_vers",
+ "Debbugs::DB::Result::BugVer",
+ { "foreign.bug" => "self.id" },
{ cascade_copy => 0, cascade_delete => 0 },
);
"Debbugs::DB::Result::Correspondent",
{ id => "done" },
{
- is_deferrable => 1,
+ is_deferrable => 0,
join_type => "LEFT",
- on_delete => "CASCADE",
- on_update => "CASCADE",
+ on_delete => "NO ACTION",
+ on_update => "NO ACTION",
},
);
"Debbugs::DB::Result::Correspondent",
{ id => "owner" },
{
- is_deferrable => 1,
+ is_deferrable => 0,
join_type => "LEFT",
- on_delete => "CASCADE",
- on_update => "CASCADE",
+ on_delete => "NO ACTION",
+ on_update => "NO ACTION",
},
);
"severity",
"Debbugs::DB::Result::Severity",
{ id => "severity" },
- { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" },
+ { is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" },
);
=head2 submitter
"Debbugs::DB::Result::Correspondent",
{ id => "submitter" },
{
- is_deferrable => 1,
+ is_deferrable => 0,
join_type => "LEFT",
- on_delete => "CASCADE",
- on_update => "CASCADE",
+ on_delete => "NO ACTION",
+ on_update => "NO ACTION",
},
);
-# Created by DBIx::Class::Schema::Loader v0.07025 @ 2013-04-01 15:59:31
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:hRsCzIGJB1krEYpMKmSVYw
+# Created by DBIx::Class::Schema::Loader v0.07048 @ 2018-04-11 13:06:55
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:qxkLXbv8JGoV9reebbOUEw
+
+use Carp;
+use List::AllUtils qw(uniq);
+
+__PACKAGE__->many_to_many(tags => 'bug_tags','tag');
+__PACKAGE__->many_to_many(user_tags => 'bug_user_tags','user_tag');
+__PACKAGE__->many_to_many(srcpackages => 'bug_srcpackages','src_pkg');
+__PACKAGE__->many_to_many(binpackages => 'bug_binpackages','bin_pkg');
+__PACKAGE__->many_to_many(affects_binpackages => 'bug_affects_binpackages','bin_pkg');
+__PACKAGE__->many_to_many(affects_srcpackages => 'bug_affects_srcpackages','src_pkg');
+__PACKAGE__->many_to_many(messages => 'bug_messages','message');
+
+sub sqlt_deploy_hook {
+ my ($self, $sqlt_table) = @_;
+ # CREATE INDEX bug_idx_owner ON bug(owner);
+ # CREATE INDEX bug_idx_submitter ON bug(submitter);
+ # CREATE INDEX bug_idx_done ON bug(done);
+ # CREATE INDEX bug_idx_forwarded ON bug(forwarded);
+ # CREATE INDEX bug_idx_last_modified ON bug(last_modified);
+ # CREATE INDEX bug_idx_severity ON bug(severity);
+ # CREATE INDEX bug_idx_creation ON bug(creation);
+ # CREATE INDEX bug_idx_log_modified ON bug(log_modified);
+ for my $idx (qw(owner submitter done forwarded last_modified),
+ qw(severity creation log_modified),
+ ) {
+ $sqlt_table->add_index(name => 'bug_idx'.$idx,
+ fields => [$idx]);
+ }
+}
+
+=head1 Utility Functions
+
+=cut
+
+=head2 set_related_packages
+
+ $b->set_related_packages($relationship,
+ \@packages,
+ $package_cache ,
+ );
+
+Set bug-related packages.
+
+=cut
+sub set_related_packages {
+ my ($self,$relationship,$pkgs,$pkg_cache) = @_;
+
+ my @unset_packages;
+ my @pkg_ids;
+ if ($relationship =~ /binpackages/) {
+ for my $pkg (@{$pkgs}) {
+ my $pkg_id =
+ $self->result_source->schema->resultset('BinPkg')->
+ get_bin_pkg_id($pkg);
+ if (not defined $pkg_id) {
+ push @unset_packages,$pkg;
+ } else {
+ push @pkg_ids, $pkg_id;
+ }
+ }
+ } elsif ($relationship =~ /srcpackages/) {
+ for my $pkg (@{$pkgs}) {
+ my $pkg_id =
+ $self->result_source->schema->resultset('SrcPkg')->
+ get_src_pkg_id($pkg);
+ if (not defined $pkg_id) {
+ push @unset_packages,$pkg;
+ } else {
+ push @pkg_ids,$pkg_id;
+ }
+ }
+ } else {
+ croak "Unsupported relationship $relationship";
+ }
+ @pkg_ids = uniq @pkg_ids;
+ if ($relationship eq 'binpackages') {
+ $self->set_binpackages([map {{id => $_}} @pkg_ids]);
+ } elsif ($relationship eq 'srcpackages') {
+ $self->set_srcpackages([map {{id => $_}} @pkg_ids]);
+ } elsif ($relationship eq 'affects_binpackages') {
+ $self->set_affects_binpackages([map {{id => $_}} @pkg_ids]);
+ } elsif ($relationship eq 'affects_srcpackages') {
+ $self->set_affects_srcpackages([map {{id => $_}} @pkg_ids]);
+ } else {
+ croak "Unsupported relationship $relationship";
+ }
+ return @unset_packages
+}
# You can replace this text with custom code or comments, and it will be preserved on regeneration
1;