pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Vlad <marchenko@gmail.com>
Cc: Brandon Metcalf <bmetcalf@nortel.com>
Cc: dbdpg-general@gborg.postgresql.org
Cc: pgsql-interfaces@postgresql.org
Subject: Re: [Dbdpg-general] benchmarking old Pg and DBD::Pg
Date: Fri, 08 Apr 2005 15:11:49 -0400
Message-ID: <16221.1112987509@sss.pgh.pa.us> (raw)
In-Reply-To: <cd70c68105040811403321e846@mail.gmail.com>
References: <Pine.LNX.4.58L.0504081127400.18466@cash.rhiamet.com>
	<cd70c6810504081112694ba268@mail.gmail.com>
	<Pine.LNX.4.58L.0504081316270.18466@cash.rhiamet.com>
	<cd70c68105040811403321e846@mail.gmail.com>

Vlad <marchenko@gmail.com> writes:
> Ideallly a programmer doesn't need to care to specify column type when
> putting a code like this (assuming C is of an "int" type ):

> my $sth = $dbh->prepare_cached( "select A from B where C=?");
> $sth->execute( 123 );
> ...

> and DBD::Pg would guess (don't ask me how) the column types and pass
> it to postgresql so the query executed in most efficient way.

DBD::Pg shouldn't need to do any such thing --- the backend can do it a
whole lot better than DBD::Pg could.  What should be happening here is
that if DBD::Pg hasn't been told a specific type for the parameter, it
should pass the parameter type to the backend as "UNKNOWN" (yes, there
is such a type ID) and let the backend try to infer the type.

There are cases where there's not enough information to infer the type,
and then the programmer has to provide it, either by writing a cast in
the query text or by passing the info to bind_param.  It sounds like
bind_param could do with some work too ... but 80% of this issue would
go away if UNKNOWN were being used correctly.

			regards, tom lane



view thread (18+ messages)  latest in thread

Message-ID: <16221.1112987509@sss.pgh.pa.us>
Permalink:  ../16221.1112987509@sss.pgh.pa.us/
Also on:    postgresql.org/message-id/16221.1112987509@sss.pgh.pa.us

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: tgl@sss.pgh.pa.us, marchenko@gmail.com, bmetcalf@nortel.com, dbdpg-general@gborg.postgresql.org
  Subject: Re: [Dbdpg-general] benchmarking old Pg and DBD::Pg
  In-Reply-To: <16221.1112987509@sss.pgh.pa.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox