Re: Speed dblink using alternate libpq tuple storage

From: Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)oss(dot)ntt(dot)co(dot)jp>
To: markokr(at)gmail(dot)com
Cc: shigeru(dot)hanada(at)gmail(dot)com, mmoncure(at)gmail(dot)com, pgsql-hackers(at)postgresql(dot)org, greg(at)2ndquadrant(dot)com
Subject: Re: Speed dblink using alternate libpq tuple storage
Date: 2012-02-16 08:49:34
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers


I added the function PQskipRemainingResult() and use it in
dblink. This reduces the number of executing try-catch block from
the number of rows to one per query in dblink.

- fe-exec.c : new function PQskipRemainingResult.
- dblink.c : using PQskipRemainingResult in dblink_record_internal().
- libpq.sgml: documentation for PQskipRemainingResult and related
change in RowProcessor.

> Instead I added simple feature: rowProcessor can return '2',
> in which case getAnotherTuple() does early exit without setting
> any error state. In user side it appears as PQisBusy() returned
> with TRUE result. All pointers stay valid, so callback can just
> stuff them into some temp area.
> It's included in main patch, but I also attached it as separate patch
> so that it can be examined separately and reverted if not acceptable.

This patch is based on the patch above and composed in the same
manner - main three patches include all modifications and the '2'
patch separately.

This patch is not rebased to the HEAD because the HEAD yields
error about the symbol LEAKPROOF...


Kyotaro Horiguchi
NTT Open Source Software Center

Attachment Content-Type Size
libpq_rowproc_20120216.patch text/x-patch 75.4 KB
libpq_rowproc_doc_20120216.patch text/x-patch 8.3 KB
dblink_use_rowproc_20120216.patch text/x-patch 12.5 KB
early_exit_20120216.diff text/x-patch 1.9 KB

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Dave Page 2012-02-16 08:56:25 Re: Google Summer of Code? Call for mentors.
Previous Message Marko Kreen 2012-02-16 08:17:21 Re: Speed dblink using alternate libpq tuple storage