Thread: About the parameter of API: PQprepared
In libpq, the definition is like:
PGresult *
PQprepare(PGconn *conn,
const char *stmtName, const char *query,
int nParams, const Oid *paramTypes)
PQprepare(PGconn *conn,
const char *stmtName, const char *query,
int nParams, const Oid *paramTypes)
Could we remove the parameter "nParams"?
e.g. "insert into foo(id, name, address) values ($1, $2, $3)"
PostgreSQL possibly can parse the prepared sql statement to get the real paramters count.
Or, is there another alternate way?
iihero <iihero@gmail.com> writes: > In libpq, the definition is like: > PGresult * > PQprepare(PGconn *conn, > const char *stmtName, const char *query, > int nParams, const Oid *paramTypes) > Could we remove the parameter "nParams"? No. We are not going to break every existing user of the function. But you can already set it to zero if you don't feel like prespecifying the parameter types. regards, tom lane
On Fri, Sep 26, 2008 at 2:45 AM, iihero <iihero@gmail.com> wrote: > In libpq, the definition is like: > PGresult * > PQprepare(PGconn *conn, > const char *stmtName, const char *query, > int nParams, const Oid *paramTypes) > > Could we remove the parameter "nParams"? > e.g. "insert into foo(id, name, address) values ($1, $2, $3)" > PostgreSQL possibly can parse the prepared sql statement to get the real > paramters count. > > Or, is there another alternate way? if you are looking for easier way to do things like prepared statements, etc. over libpq, you may want to look at libpqtypes (it's a external library that will require a patched libpq for versions <8.4): http://libpqtypes.esilo.com/ merlin
Merlin Moncure wrote: > On Fri, Sep 26, 2008 at 2:45 AM, iihero <iihero@gmail.com> wrote: >> In libpq, the definition is like: >> PGresult * >> PQprepare(PGconn *conn, >> const char *stmtName, const char *query, >> int nParams, const Oid *paramTypes) >> >> Could we remove the parameter "nParams"? >> e.g. "insert into foo(id, name, address) values ($1, $2, $3)" >> PostgreSQL possibly can parse the prepared sql statement to get the real >> paramters count. >> >> Or, is there another alternate way? > > if you are looking for easier way to do things like prepared > statements, etc. over libpq, you may want to look at libpqtypes (it's > a external library that will require a patched libpq for versions > <8.4): > > http://libpqtypes.esilo.com/ > > merlin > Sounds like you could make use of libpqtypes, which abstracts you from the standard parameterized API. Latest version of libpqtypes is finally online (v1.2a): http://pgfoundry.org/frs/?group_id=1000370 NOTE: requires using cvs head because libpqtypes needs the new libpq-events feature. -- Andrew Chernow eSilo, LLC every bit counts http://www.esilo.com/