BUG #13404: Docs do not mention "access/htup_details.h" for C functions using heap_form_tuple - Mailing list pgsql-bugs

From christianr@fastmail.com
Subject BUG #13404: Docs do not mention "access/htup_details.h" for C functions using heap_form_tuple
Date
Msg-id 20150605195349.22140.41708@wrigleys.postgresql.org
Whole thread Raw
Responses Re: BUG #13404: Docs do not mention "access/htup_details.h" for C functions using heap_form_tuple  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      13404
Logged by:          Christian Reinke
Email address:      christianr@fastmail.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?

pgsql-bugs by date:

Previous
From: heliotec2008@gmail.com
Date:
Subject: BUG #13403: Erro na instalção
Next
From: Alvaro Herrera
Date:
Subject: Re: BUG #13404: Docs do not mention "access/htup_details.h" for C functions using heap_form_tuple