On Thu, Feb 23, 2012 at 07:14:03PM +0900, Kyotaro HORIGUCHI wrote:
> Hello, this is new version of the patch.
> By the way, I would like to ask you one question. What is the
> reason why void* should be head or tail of the parameter list?
1) PGresult and PGrowValue belong together.
2) void* is probably the context object for handler. When doing
object-oriented programming in C the main object is usually first.
Like libpq does - PGconn is always first argument.
But as libpq does not know the actual meaning of void* for handler,
is can be last param as well.
When I wrote the demo code, I noticed that it is unnatural to have
void* in the middle.
Last comment - if we drop the plan to make PQsetRowProcessorErrMsg()
usable outside of handler, we can simplify internal usage as well:
the PGresult->rowProcessorErrMsg can be dropped and let's use
->errMsg to transport the error message.
The PGresult is long-lived structure and adding fields for such
temporary usage feels wrong. There is no other libpq code between
row processor and getAnotherTuple, so the use is safe.
In response to
pgsql-hackers by date
|Next:||From: Simon Riggs||Date: 2012-02-23 12:36:15|
|Subject: Re: Initial 9.2 pgbench write results|
|Previous:||From: Hitoshi Harada||Date: 2012-02-23 11:35:53|
|Subject: Re: Finer Extension dependencies|