["Dean Arnold" ] Re: Array Binding Status? - Mailing list pgsql-interfaces

From Jason E. Stewart
Subject ["Dean Arnold" ] Re: Array Binding Status?
Date
Msg-id 87fztjt05d.fsf@openinformatics.com
Whole thread Raw
Responses Re: ["Dean Arnold" ] Re: Array Binding Status?  ("Jason E. Stewart" <jason@openinformatics.com>)
List pgsql-interfaces
Hi all,

I'm included a piece of a discussion that was had on the Perl DBI
mailing list a while back. A new feature was added that enable
applications to pass off arrays of placeholder values for each
placeholder in a prepared SQL statement instead of only a single value
for each placeholder.

This meant a significant speed-up for things like large INSERT
statements.

My question is does Postgres have the necessary abilities to handle
this feature?

Thanks ahead of time,
jas.

> > Thanks Andrew,
> >
> > The question isn't whether the current DBD::Pg supports the behavior,
> > it doesn't, the issue is whether the Postgres C API has an ability to
> > do these array-based inserts.
> >
> > I would definately have to modify DBD::Pg's C code to support this.
> >
> > I was just wondering from Dean and Jeff what kind of C API methods did
> > they need to use to get it working for ODBC.
>
> It's all part of the ODBC spec/API.
>
> Jeff
>

Or check the Oracle OCI array binding (the function names
escape me at the moment).

The deeper issue is whether the DBMS supports a bulk
operation, esp in a transactional context. E.g., Teradata
has bulk operation utilities ala SQLLoader, but
currently doesn't support bulk operations in a
regular SQL connection.

While adding an iterative
query execution into the C API code will help some,
the big boosts occur when the DBMS can gobble
up a stream of 1,000+ placeholder tuples at once
(and esp. for INSERT, dump 'em directly to disk),
as e.g. Oracle and DB2 do.

Dean




pgsql-interfaces by date:

Previous
From: Lee Kindness
Date:
Subject: Re: [HACKERS] 7.3 gotchas for applications and client libraries
Next
From: "Thomas A. Lowery"
Date:
Subject: Re: ANNOUNCE: DBD::Pg 1.20