KSQL_ROLE(3) Library Functions Manual KSQL_ROLE(3)

ksql_role
set role in ksql context

library “ksql”

#include <sys/types.h>
#include <stdint.h>
#include <ksql.h>
void
ksql_role(struct ksql *sql, size_t role);

The ksql_role function sets the current role of sql. The role is the index of a role defined in cfg->roles as passed to ksql_alloc(3) or ksql_alloc_child(3). The role affects all subsequent ksql_exec(3) and ksql_stmt_alloc(3) calls.
The new role must be allowed by having a non-zero value in the roles array within the current role's struct ksqlrole object. Otherwise, the situation is logged to stderr and the program is immediately terminated.
In split-process mode, ksql_role() automatically sets KSQL_EXIT_ON_ERR on cfg->flags and cfg->err to NULL, restoring both if/when it returns. These guarantee that the function will never return without having properly set the new role.

ksql_alloc(3), ksql_alloc_child(3), ksql_exec(3), ksql_stmt_alloc(3)
April 5, 2018 OpenBSD 6.4