Re: Bulk inserts within a Perl script? - Mailing list pgsql-general

From Teodor Sigaev
Subject Re: Bulk inserts within a Perl script?
Date
Msg-id 44457C3A.5080305@sigaev.ru
Whole thread Raw
In response to Bulk inserts within a Perl script?  ("Kynn Jones" <kynnjo@gmail.com>)
Responses Re: Bulk inserts within a Perl script?
List pgsql-general
$dbi->do("COPY TABLE FROM stdin;");
for(;;) {
    $dbi->func( "$idd\t$tid\n", 'putline');
}
$dbi->func("\\.\n", 'putline');
$dbi->func('endcopy');

I don't known what about modern versions of DBI and DBD::Pg,
but it worked at 2001 year :)

Kynn Jones wrote:
> I have a Perl script that is supposed to make a large number of inserts
> in a PostgreSQL database.  Performing individual inserts with SQL's
> INSERT command is too slow, however, I can use a "COPY ... from stdin"
> approach that is fast enough.  Basically, I fork a psql process (yes,
> I'm on unix) and have the parent write the new records into the child,
> as part of a COPY from stdin command.  Admittedly, this is very
> convoluted, but it works.
>
> Well, it almost works.  It did in my preliminary tests, but failed in
> the real run with the actual database because the owner of the tables
> that get modified by this COPY statement is a user for which the psql
> command requires a password ( i.e. this user exists solely for the
> purpose of owning the database in question; it does not have a UID, nor
> disk space assigned to it), and I don't know how to give this password
> programmatically.
>
> So I'm back at the drawing board.  How can I make fast bulk inserts into
> a PostgreSQL database from within a Perl script?
>
> Thanks!
>
> kj
>

--
Teodor Sigaev                                   E-mail: teodor@sigaev.ru
                                                    WWW: http://www.sigaev.ru/

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Bulk inserts within a Perl script?
Next
From: "Florian G. Pflug"
Date:
Subject: Re: Partial indexes