2023-06-29 08:57:54 +03:00
|
|
|
#ifndef LIBSQL_EXPERIMENTAL_H
|
|
|
|
#define LIBSQL_EXPERIMENTAL_H
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
2024-05-26 17:18:38 +02:00
|
|
|
#define LIBSQL_INT 1
|
|
|
|
|
|
|
|
#define LIBSQL_FLOAT 2
|
|
|
|
|
|
|
|
#define LIBSQL_TEXT 3
|
|
|
|
|
|
|
|
#define LIBSQL_BLOB 4
|
|
|
|
|
|
|
|
#define LIBSQL_NULL 5
|
|
|
|
|
2023-06-29 14:05:28 +03:00
|
|
|
typedef struct libsql_connection libsql_connection;
|
|
|
|
|
2023-06-29 08:57:54 +03:00
|
|
|
typedef struct libsql_database libsql_database;
|
|
|
|
|
2023-07-31 16:58:49 +02:00
|
|
|
typedef struct libsql_row libsql_row;
|
|
|
|
|
2023-07-02 13:23:47 +03:00
|
|
|
typedef struct libsql_rows libsql_rows;
|
2023-06-29 14:05:28 +03:00
|
|
|
|
2023-07-02 13:23:47 +03:00
|
|
|
typedef struct libsql_rows_future libsql_rows_future;
|
2023-07-02 13:21:53 +03:00
|
|
|
|
2024-01-25 11:05:40 +01:00
|
|
|
typedef struct libsql_stmt libsql_stmt;
|
|
|
|
|
2023-06-29 14:05:28 +03:00
|
|
|
typedef const libsql_database *libsql_database_t;
|
|
|
|
|
|
|
|
typedef const libsql_connection *libsql_connection_t;
|
|
|
|
|
2024-01-25 11:05:40 +01:00
|
|
|
typedef const libsql_stmt *libsql_stmt_t;
|
|
|
|
|
2023-07-02 13:23:47 +03:00
|
|
|
typedef const libsql_rows *libsql_rows_t;
|
2023-06-29 08:57:54 +03:00
|
|
|
|
2023-07-02 13:23:47 +03:00
|
|
|
typedef const libsql_rows_future *libsql_rows_future_t;
|
2023-07-02 13:21:53 +03:00
|
|
|
|
2023-07-31 16:58:49 +02:00
|
|
|
typedef const libsql_row *libsql_row_t;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
const char *ptr;
|
|
|
|
int len;
|
|
|
|
} blob;
|
|
|
|
|
2023-06-29 08:57:54 +03:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif // __cplusplus
|
|
|
|
|
2023-08-09 15:37:25 +02:00
|
|
|
int libsql_sync(libsql_database_t db, const char **out_err_msg);
|
|
|
|
|
2023-09-02 15:22:15 +02:00
|
|
|
int libsql_open_sync(const char *db_path,
|
|
|
|
const char *primary_url,
|
|
|
|
const char *auth_token,
|
2024-02-29 08:55:49 +01:00
|
|
|
char read_your_writes,
|
|
|
|
const char *encryption_key,
|
2023-09-02 15:22:15 +02:00
|
|
|
libsql_database_t *out_db,
|
|
|
|
const char **out_err_msg);
|
2023-08-09 15:37:25 +02:00
|
|
|
|
2024-06-03 20:49:58 +02:00
|
|
|
int libsql_open_sync_with_webpki(const char *db_path,
|
|
|
|
const char *primary_url,
|
|
|
|
const char *auth_token,
|
|
|
|
char read_your_writes,
|
|
|
|
const char *encryption_key,
|
|
|
|
libsql_database_t *out_db,
|
|
|
|
const char **out_err_msg);
|
|
|
|
|
2023-08-04 15:20:27 +02:00
|
|
|
int libsql_open_ext(const char *url, libsql_database_t *out_db, const char **out_err_msg);
|
2023-06-29 14:05:28 +03:00
|
|
|
|
2023-11-28 14:09:30 +02:00
|
|
|
int libsql_open_file(const char *url, libsql_database_t *out_db, const char **out_err_msg);
|
|
|
|
|
|
|
|
int libsql_open_remote(const char *url, const char *auth_token, libsql_database_t *out_db, const char **out_err_msg);
|
|
|
|
|
2024-06-03 20:49:58 +02:00
|
|
|
int libsql_open_remote_with_webpki(const char *url,
|
|
|
|
const char *auth_token,
|
|
|
|
libsql_database_t *out_db,
|
|
|
|
const char **out_err_msg);
|
|
|
|
|
2023-06-29 14:05:28 +03:00
|
|
|
void libsql_close(libsql_database_t db);
|
|
|
|
|
2023-08-05 11:01:30 +02:00
|
|
|
int libsql_connect(libsql_database_t db, libsql_connection_t *out_conn, const char **out_err_msg);
|
2023-06-29 14:05:28 +03:00
|
|
|
|
2024-02-29 11:09:07 +01:00
|
|
|
int libsql_reset(libsql_connection_t conn, const char **out_err_msg);
|
|
|
|
|
2023-06-29 14:05:28 +03:00
|
|
|
void libsql_disconnect(libsql_connection_t conn);
|
|
|
|
|
2024-01-29 14:21:15 +01:00
|
|
|
int libsql_prepare(libsql_connection_t conn, const char *sql, libsql_stmt_t *out_stmt, const char **out_err_msg);
|
2024-01-25 11:05:40 +01:00
|
|
|
|
|
|
|
int libsql_bind_int(libsql_stmt_t stmt, int idx, long long value, const char **out_err_msg);
|
|
|
|
|
|
|
|
int libsql_bind_float(libsql_stmt_t stmt, int idx, double value, const char **out_err_msg);
|
|
|
|
|
|
|
|
int libsql_bind_null(libsql_stmt_t stmt, int idx, const char **out_err_msg);
|
|
|
|
|
|
|
|
int libsql_bind_string(libsql_stmt_t stmt, int idx, const char *value, const char **out_err_msg);
|
|
|
|
|
|
|
|
int libsql_bind_blob(libsql_stmt_t stmt, int idx, const unsigned char *value, int value_len, const char **out_err_msg);
|
|
|
|
|
2024-03-12 13:40:03 +01:00
|
|
|
int libsql_query_stmt(libsql_stmt_t stmt, libsql_rows_t *out_rows, const char **out_err_msg);
|
|
|
|
|
|
|
|
int libsql_execute_stmt(libsql_stmt_t stmt, const char **out_err_msg);
|
2024-01-25 11:05:40 +01:00
|
|
|
|
2024-05-26 16:36:54 +02:00
|
|
|
int libsql_reset_stmt(libsql_stmt_t stmt, const char **out_err_msg);
|
|
|
|
|
2024-01-25 11:05:40 +01:00
|
|
|
void libsql_free_stmt(libsql_stmt_t stmt);
|
|
|
|
|
2024-03-12 13:40:03 +01:00
|
|
|
int libsql_query(libsql_connection_t conn, const char *sql, libsql_rows_t *out_rows, const char **out_err_msg);
|
|
|
|
|
|
|
|
int libsql_execute(libsql_connection_t conn, const char *sql, const char **out_err_msg);
|
2023-06-29 14:05:28 +03:00
|
|
|
|
2023-07-02 13:23:47 +03:00
|
|
|
void libsql_free_rows(libsql_rows_t res);
|
2023-06-29 14:05:28 +03:00
|
|
|
|
2023-07-02 13:23:47 +03:00
|
|
|
void libsql_free_rows_future(libsql_rows_future_t res);
|
2023-07-02 13:21:53 +03:00
|
|
|
|
2023-07-02 13:23:47 +03:00
|
|
|
void libsql_wait_result(libsql_rows_future_t res);
|
2023-07-02 13:21:53 +03:00
|
|
|
|
2023-07-02 13:23:47 +03:00
|
|
|
int libsql_column_count(libsql_rows_t res);
|
2023-06-29 08:57:54 +03:00
|
|
|
|
2023-08-05 11:55:52 +02:00
|
|
|
int libsql_column_name(libsql_rows_t res, int col, const char **out_name, const char **out_err_msg);
|
2023-07-31 16:58:49 +02:00
|
|
|
|
2024-02-08 16:39:39 +01:00
|
|
|
int libsql_column_type(libsql_rows_t res, libsql_row_t row, int col, int *out_type, const char **out_err_msg);
|
2023-07-31 16:58:49 +02:00
|
|
|
|
2023-11-17 13:00:01 +02:00
|
|
|
uint64_t libsql_changes(libsql_connection_t conn);
|
|
|
|
|
2023-11-17 13:00:49 +02:00
|
|
|
int64_t libsql_last_insert_rowid(libsql_connection_t conn);
|
|
|
|
|
2023-08-05 15:10:14 +02:00
|
|
|
int libsql_next_row(libsql_rows_t res, libsql_row_t *out_row, const char **out_err_msg);
|
2023-07-31 16:58:49 +02:00
|
|
|
|
|
|
|
void libsql_free_row(libsql_row_t res);
|
|
|
|
|
2023-08-05 15:27:53 +02:00
|
|
|
int libsql_get_string(libsql_row_t res, int col, const char **out_value, const char **out_err_msg);
|
2023-07-31 16:58:49 +02:00
|
|
|
|
|
|
|
void libsql_free_string(const char *ptr);
|
|
|
|
|
2023-08-05 15:36:32 +02:00
|
|
|
int libsql_get_int(libsql_row_t res, int col, long long *out_value, const char **out_err_msg);
|
2023-07-31 16:58:49 +02:00
|
|
|
|
2023-08-05 15:42:15 +02:00
|
|
|
int libsql_get_float(libsql_row_t res, int col, double *out_value, const char **out_err_msg);
|
2023-07-31 16:58:49 +02:00
|
|
|
|
2023-08-05 15:49:04 +02:00
|
|
|
int libsql_get_blob(libsql_row_t res, int col, blob *out_blob, const char **out_err_msg);
|
2023-07-31 16:58:49 +02:00
|
|
|
|
|
|
|
void libsql_free_blob(blob b);
|
2023-06-29 08:57:54 +03:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
} // extern "C"
|
|
|
|
#endif // __cplusplus
|
|
|
|
|
|
|
|
#endif /* LIBSQL_EXPERIMENTAL_H */
|