BUG #13404: Docs do not mention "access/htup_details.h" for C functions using heap_form_tuple

From: christianr(at)fastmail(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #13404: Docs do not mention "access/htup_details.h" for C functions using heap_form_tuple
Date: 2015-06-05 19:53:49
Message-ID: 20150605195349.22140.41708@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 13404
Logged by: Christian Reinke
Email address: christianr(at)fastmail(dot)com
PostgreSQL version: 9.4.2
Operating system: Linux
Description:

Bug report regarding: PostgreSQL 9.4.2 Documentation (in HTML format)
Section 35.9. C-Language Functions
Section 35.9.8. Returning Rows (Composite Types)

PostgreSQL version: 9.4.2.

Debian packages: postgresql-9.4, postgresql-doc-9.4,
postgresql-server-dev-9.4,
etc., all version 9.4.2-0+deb8u1.

Platform: Linux ... 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt9-3~deb8u1
(2015-04-24) x86_64 GNU/Linux.

I tried to compile a C-language function that uses the function
heap_form_tuple and got a warning because its declaration was missing:

gcc -I/usr/include/postgresql/9.4/server -Wall -c -fpic -lm -g test1.c
test1.c: In function ‘test1’:
test1.c:246:3: warning: implicit declaration of function ‘heap_form_tuple’
[-Wimplicit-function-declaration]
result_tuple = heap_form_tuple (result_tuple_desc, dat, isnull);
^

test1.c compiled without this warning under PostgreSQL 9.1.

test1.c included the following PostgreSQL header files:
#include "postgres.h"
#include "fmgr.h"
#include "funcapi.h"
#include "executor/executor.h"

test1.c compiles successfully under PostgreSQL 9.4 if I, also, include:
#include "access/htup_details.h"

PostgreSQL 9.1 included the declaration of heap_form_tuple along the
sequence funcapi.h, executor/tuptable.h and access/htup.h. In
PostgreSQL 9.4, the declaration of heap_form_tuple moved from
access/htup.h to a new header file access/htup_details.h, which is not
included by funcapi.h.

The HTML documentation, however, seems to say in Section 35.9.8. that it
is sufficient to include funcapi.h to get all the definitions required
for functions returning rows (composite types).

Is this a bug, or did I miss something?

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Alvaro Herrera 2015-06-05 21:50:22 Re: BUG #13404: Docs do not mention "access/htup_details.h" for C functions using heap_form_tuple
Previous Message heliotec2008 2015-06-05 18:46:55 BUG #13403: Erro na instalção