1 # This module is part of debbugs, and is released
2 # under the terms of the GPL version 2, or any later version. See the
3 # file README and COPYING for more information.
4 # Copyright 2017 by Don Armstrong <don@donarmstrong.com>.
6 package Debbugs::DB::ResultSet::Bug;
10 Debbugs::DB::ResultSet::Bug - Bug result set operations
25 use base 'DBIx::Class::ResultSet';
26 __PACKAGE__->load_components('Helper::ResultSet');
28 use Debbugs::DB::Util qw(select_one);
30 use List::MoreUtils qw(natatime);
35 =item quick_insert_bugs
37 $s->result_set('Bug')->quick_insert_bugs(@bugs);
39 Quickly insert a set of bugs (without any useful information, like subject,
40 etc). This should probably only be called when inserting bugs in the database
46 sub quick_insert_bugs {
47 my ($self,@bugs) = @_;
49 my $it = natatime 2000, @bugs;
51 while (my @b = $it->()) {
52 $self->result_source->schema->
55 $self->quick_insert_bug($b);
61 =item quick_insert_bug
63 $s->result_set('Bug')->quick_insert_bug($bug);
65 Quickly insert a single bug (called by quick_insert_bugs). You should probably
66 actually be calling C<Debbugs::DB::Load::load_bug> instead of this function.
70 sub quick_insert_bug {
72 return $self->result_source->schema->storage->
75 select_one($dbh,<<'SQL',$b);
76 INSERT INTO bug (id,subject,severity) VALUES (?,'',1)
77 ON CONFLICT (id) DO NOTHING RETURNING id;