>
> sub bulk_insert {
>
> my ($self, $table, $records, $options) = @_;
> my ($stmt) = $self->pg->abstract->insert($table, $records->[0],
> $options);
> eval {
> my $tx = $self->pg->db->begin;
> my $i = $self->pg->db->dbh->prepare($stmt);
> while ( my $next = shift @$records ) {
> $i->execute(@$next{sort keys %$next});
> }
> $tx->commit;
> };
> return $@ if $@;
> }
>
>
There's a lot wrong with this. You should hold on to $db objects, there's a
pool of connections in
Mojo::Pg. Manual prepare/execute is pointless, Mojo::Pg::Database has a
transparent statement
handle cache, once you hold on to the $db object you get caching for free
without having to do
anything. Just pass the same data structure to ->insert or same SQL to
->query and you're done.
--
sebastian
--
You received this message because you are subscribed to the Google Groups
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.