KSQL_OPEN(3)

NAME
ksql_open - open a ksql database connection

LIBRARY
ksql

SYNOPSIS
#include <stdint.h>
#include <ksql.h>
enum ksqlc
ksql_open(struct ksql *sql, const char *dbfile);

DESCRIPTION
The ksql_open function opens a database connection to dbfile (which must exists) on a handle allocated with ksql_alloc(3). If sql already has a database connection open, it will close it first with ksql_close(3). If the handle was allocated with KSQL_FOREIGN_KEYS, a successful open will be followed by a ksql_exec(3) call to enable foreign keys.

The ksql_open function handles a locked database (specifically, SQLITE_BUSY, SQLITE_LOCKED, or SQLITE_PROTOCOL) by sleeping for a random interval, then trying again infinitely.

RETURN VALUES
This returns the exit code of ksql_close(3) if it failed, the exit code of ksql_exec(3) if it failed to enable foreign keys, KSQL_MEM if memory allocation failed, KSQL_DB if the sqlite3_open(3) function failed, otherwise KSQL_OK on success.

SEE ALSO
sqlite3_exec(3), sqlite3_open(3)