view deita/deita_internal.h @ 94:092afa595764

[MrJuneJune] Added Integration tests.
author June Park <parkjune1995@gmail.com>
date Fri, 02 Jan 2026 18:13:32 -0800
parents ae6a88e6e484
children f3084bca7317
line wrap: on
line source

#ifndef DEITA_INTERNAL
#define DEITA_INTERNAL

#include <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