mirror of
https://github.com/postgres/postgres.git
synced 2026-02-19 02:29:10 -05:00
Test List macros in C++ extensions
All of these macros already work in C++ with Clang and GCC (the only
compilers we're currently testing C++ extension support for). This
adds a regression test for them in our test C++ extension, so we can
safely change their implementation without accidentally breaking C++.
Some of the List macros didn't work in C++ in the past (see commit
d5ca15ee5), and this would have caught that.
Author: Jelte Fennema-Nio <postgres@jeltef.nl>
Discussion: https://www.postgresql.org/message-id/flat/CAGECzQR21OnnKiZO_1rLWO0-16kg1JBxnVq-wymYW0-_1cUNtg@mail.gmail.com
This commit is contained in:
parent
bd626ef093
commit
3d28ecb5ac
1 changed files with 17 additions and 0 deletions
|
|
@ -17,6 +17,8 @@
|
|||
extern "C" {
|
||||
#include "postgres.h"
|
||||
#include "fmgr.h"
|
||||
#include "nodes/pg_list.h"
|
||||
#include "nodes/primnodes.h"
|
||||
|
||||
PG_MODULE_MAGIC;
|
||||
|
||||
|
|
@ -32,6 +34,21 @@ test_cplusplus_add(PG_FUNCTION_ARGS)
|
|||
{
|
||||
int32 a = PG_GETARG_INT32(0);
|
||||
int32 b = PG_GETARG_INT32(1);
|
||||
RangeTblRef *node = makeNode(RangeTblRef);
|
||||
List *list = list_make1(node);
|
||||
|
||||
foreach_ptr(RangeTblRef, rtr, list)
|
||||
{
|
||||
(void) rtr;
|
||||
}
|
||||
|
||||
foreach_node(RangeTblRef, rtr, list)
|
||||
{
|
||||
(void) rtr;
|
||||
}
|
||||
|
||||
list_free(list);
|
||||
pfree(node);
|
||||
|
||||
PG_RETURN_INT32(a + b);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue