view deita/deita_internal.h @ 173:827c6ac504cd hg-web

Merged in default here.
author MrJuneJune <me@mrjunejune.com>
date Mon, 19 Jan 2026 18:59:10 -0800
parents f3084bca7317
children
line wrap: on
line source

#ifndef DEITA_INTERNAL
#define DEITA_INTERNAL

#include "third_party/sqlite3/sqlite3.h"
#include "deita.h"

struct Deita_Connection
{
  Deita_Database_Type database_type;
  void *native_handle;
  boolean is_open;
};

struct Deita_Result_Set
{
  Deita_Database_Type database_type;
  void *native_result;
  int32 column_count;
  boolean has_data;
  boolean is_done;
};

// SQLite3-specific functions (implemented in d_sqlite.c)
extern Deita_Connection* deita__sqlite_connection_create(const char *connection_string);
extern void deita__sqlite_connection_close(Deita_Connection *p_connection);
extern boolean deita__sqlite_connection_is_open(Deita_Connection *p_connection);

extern Deita_Result_Set* deita__sqlite_query_execute(
  Deita_Connection *p_connection,
  const char *query,
  Dowa_Arena *p_arena
);

extern Deita_Result_Set* deita__sqlite_query_execute_prepared(
  Deita_Connection *p_connection,
  const char *query,
  int32 parameter_count,
  const char **parameter_values,
  Dowa_Arena *p_arena
);

extern int32 deita__sqlite_query_execute_update(
  Deita_Connection *p_connection,
  const char *query
);

extern int32 deita__sqlite_query_execute_update_prepared(
  Deita_Connection *p_connection,
  const char *query,
  int32 parameter_count,
  const char **parameter_values
);

extern boolean deita__sqlite_result_set_next(Deita_Result_Set *p_result_set);
extern int32 deita__sqlite_result_set_get_column_count(Deita_Result_Set *p_result_set);
extern const char* deita__sqlite_result_set_get_column_name(Deita_Result_Set *p_result_set, int32 column_index);
extern Deita_Column_Type deita__sqlite_result_set_get_column_type(Deita_Result_Set *p_result_set, int32 column_index);
extern const char* deita__sqlite_result_set_get_text(Deita_Result_Set *p_result_set, int32 column_index);
extern int64 deita__sqlite_result_set_get_integer(Deita_Result_Set *p_result_set, int32 column_index);
extern double deita__sqlite_result_set_get_real(Deita_Result_Set *p_result_set, int32 column_index);
extern void deita__sqlite_result_set_free(Deita_Result_Set *p_result_set);

#endif