added the sqlite module
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-12-25 04:13:48 +09:00
parent 5043c16532
commit 64250aa80c
26 changed files with 6775 additions and 3112 deletions

View File

@@ -65,6 +65,17 @@ libhawk_sed_la_LIBADD = $(LIBADD_COMMON_DYNAMIC)
endif
endif
if ENABLE_MOD_SQLITE
if !ENABLE_MOD_SQLITE_STATIC
pkgmodexec_LTLIBRARIES += libhawk-sqlite.la
libhawk_sqlite_la_SOURCES = mod-sqlite.c mod-sqlite.h
libhawk_sqlite_la_CPPFLAGS = $(CPPFLAGS_COMMON)
libhawk_sqlite_la_CFLAGS = $(CFLAGS_COMMON)
libhawk_sqlite_la_LDFLAGS = $(LDFLAGS_COMMON_DYNAMIC)
libhawk_sqlite_la_LIBADD = $(LIBADD_COMMON_DYNAMIC) $(SQLITE_LIBS)
endif
endif
if ENABLE_MOD_UCI
if !ENABLE_MOD_UCI_STATIC
pkgmodexec_LTLIBRARIES += libhawk-uci.la

View File

@@ -98,7 +98,8 @@ host_triplet = @host@
@ENABLE_MOD_MEMC_STATIC_FALSE@@ENABLE_MOD_MEMC_TRUE@am__append_2 = libhawk-memc.la
@ENABLE_MOD_MYSQL_STATIC_FALSE@@ENABLE_MOD_MYSQL_TRUE@am__append_3 = libhawk-mysql.la
@ENABLE_MOD_SED_STATIC_FALSE@@ENABLE_MOD_SED_TRUE@am__append_4 = libhawk-sed.la
@ENABLE_MOD_UCI_STATIC_FALSE@@ENABLE_MOD_UCI_TRUE@am__append_5 = libhawk-uci.la
@ENABLE_MOD_SQLITE_STATIC_FALSE@@ENABLE_MOD_SQLITE_TRUE@am__append_5 = libhawk-sqlite.la
@ENABLE_MOD_UCI_STATIC_FALSE@@ENABLE_MOD_UCI_TRUE@am__append_6 = libhawk-uci.la
subdir = mod
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_sign.m4 \
@@ -197,6 +198,17 @@ libhawk_sed_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@ENABLE_MOD_SED_STATIC_FALSE@@ENABLE_MOD_SED_TRUE@am_libhawk_sed_la_rpath = \
@ENABLE_MOD_SED_STATIC_FALSE@@ENABLE_MOD_SED_TRUE@ -rpath \
@ENABLE_MOD_SED_STATIC_FALSE@@ENABLE_MOD_SED_TRUE@ $(pkgmodexecdir)
@ENABLE_MOD_SQLITE_STATIC_FALSE@@ENABLE_MOD_SQLITE_TRUE@libhawk_sqlite_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
@ENABLE_MOD_SQLITE_STATIC_FALSE@@ENABLE_MOD_SQLITE_TRUE@ $(am__DEPENDENCIES_1)
am__libhawk_sqlite_la_SOURCES_DIST = mod-sqlite.c mod-sqlite.h
@ENABLE_MOD_SQLITE_STATIC_FALSE@@ENABLE_MOD_SQLITE_TRUE@am_libhawk_sqlite_la_OBJECTS = libhawk_sqlite_la-mod-sqlite.lo
libhawk_sqlite_la_OBJECTS = $(am_libhawk_sqlite_la_OBJECTS)
libhawk_sqlite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(libhawk_sqlite_la_CFLAGS) $(CFLAGS) \
$(libhawk_sqlite_la_LDFLAGS) $(LDFLAGS) -o $@
@ENABLE_MOD_SQLITE_STATIC_FALSE@@ENABLE_MOD_SQLITE_TRUE@am_libhawk_sqlite_la_rpath = -rpath \
@ENABLE_MOD_SQLITE_STATIC_FALSE@@ENABLE_MOD_SQLITE_TRUE@ $(pkgmodexecdir)
@ENABLE_MOD_UCI_STATIC_FALSE@@ENABLE_MOD_UCI_TRUE@libhawk_uci_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
@ENABLE_MOD_UCI_STATIC_FALSE@@ENABLE_MOD_UCI_TRUE@ $(am__DEPENDENCIES_1)
am__libhawk_uci_la_SOURCES_DIST = mod-uci.c mod-uci.h
@@ -228,6 +240,7 @@ am__depfiles_remade = ./$(DEPDIR)/libhawk_ffi_la-mod-ffi.Plo \
./$(DEPDIR)/libhawk_memc_la-mod-memc.Plo \
./$(DEPDIR)/libhawk_mysql_la-mod-mysql.Plo \
./$(DEPDIR)/libhawk_sed_la-mod-sed.Plo \
./$(DEPDIR)/libhawk_sqlite_la-mod-sqlite.Plo \
./$(DEPDIR)/libhawk_uci_la-mod-uci.Plo
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
@@ -250,11 +263,12 @@ am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(libhawk_ffi_la_SOURCES) $(libhawk_memc_la_SOURCES) \
$(libhawk_mysql_la_SOURCES) $(libhawk_sed_la_SOURCES) \
$(libhawk_uci_la_SOURCES)
$(libhawk_sqlite_la_SOURCES) $(libhawk_uci_la_SOURCES)
DIST_SOURCES = $(am__libhawk_ffi_la_SOURCES_DIST) \
$(am__libhawk_memc_la_SOURCES_DIST) \
$(am__libhawk_mysql_la_SOURCES_DIST) \
$(am__libhawk_sed_la_SOURCES_DIST) \
$(am__libhawk_sqlite_la_SOURCES_DIST) \
$(am__libhawk_uci_la_SOURCES_DIST)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
@@ -374,6 +388,7 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SOCKET_LIBS = @SOCKET_LIBS@
SQLITE_LIBS = @SQLITE_LIBS@
STRIP = @STRIP@
UCI_LIBS = @UCI_LIBS@
UNICOWS_LIBS = @UNICOWS_LIBS@
@@ -451,7 +466,8 @@ LDFLAGS_COMMON_DYNAMIC = -L../lib -L$(libdir) -version-info 1:0:0 ## -no-undefin
LIBADD_COMMON_DYNAMIC = -lhawk
pkgmodexecdir = $(libdir)
pkgmodexec_LTLIBRARIES = $(am__append_1) $(am__append_2) \
$(am__append_3) $(am__append_4) $(am__append_5)
$(am__append_3) $(am__append_4) $(am__append_5) \
$(am__append_6)
@ENABLE_MOD_FFI_STATIC_FALSE@@ENABLE_MOD_FFI_TRUE@libhawk_ffi_la_SOURCES = mod-ffi.c mod-ffi.h
@ENABLE_MOD_FFI_STATIC_FALSE@@ENABLE_MOD_FFI_TRUE@libhawk_ffi_la_CPPFLAGS = $(CPPFLAGS_COMMON)
@ENABLE_MOD_FFI_STATIC_FALSE@@ENABLE_MOD_FFI_TRUE@libhawk_ffi_la_CFLAGS = $(CFLAGS_COMMON)
@@ -472,6 +488,11 @@ pkgmodexec_LTLIBRARIES = $(am__append_1) $(am__append_2) \
@ENABLE_MOD_SED_STATIC_FALSE@@ENABLE_MOD_SED_TRUE@libhawk_sed_la_CFLAGS = $(CFLAGS_COMMON)
@ENABLE_MOD_SED_STATIC_FALSE@@ENABLE_MOD_SED_TRUE@libhawk_sed_la_LDFLAGS = $(LDFLAGS_COMMON_DYNAMIC)
@ENABLE_MOD_SED_STATIC_FALSE@@ENABLE_MOD_SED_TRUE@libhawk_sed_la_LIBADD = $(LIBADD_COMMON_DYNAMIC)
@ENABLE_MOD_SQLITE_STATIC_FALSE@@ENABLE_MOD_SQLITE_TRUE@libhawk_sqlite_la_SOURCES = mod-sqlite.c mod-sqlite.h
@ENABLE_MOD_SQLITE_STATIC_FALSE@@ENABLE_MOD_SQLITE_TRUE@libhawk_sqlite_la_CPPFLAGS = $(CPPFLAGS_COMMON)
@ENABLE_MOD_SQLITE_STATIC_FALSE@@ENABLE_MOD_SQLITE_TRUE@libhawk_sqlite_la_CFLAGS = $(CFLAGS_COMMON)
@ENABLE_MOD_SQLITE_STATIC_FALSE@@ENABLE_MOD_SQLITE_TRUE@libhawk_sqlite_la_LDFLAGS = $(LDFLAGS_COMMON_DYNAMIC)
@ENABLE_MOD_SQLITE_STATIC_FALSE@@ENABLE_MOD_SQLITE_TRUE@libhawk_sqlite_la_LIBADD = $(LIBADD_COMMON_DYNAMIC) $(SQLITE_LIBS)
@ENABLE_MOD_UCI_STATIC_FALSE@@ENABLE_MOD_UCI_TRUE@libhawk_uci_la_SOURCES = mod-uci.c mod-uci.h
@ENABLE_MOD_UCI_STATIC_FALSE@@ENABLE_MOD_UCI_TRUE@libhawk_uci_la_CPPFLAGS = $(CPPFLAGS_COMMON)
@ENABLE_MOD_UCI_STATIC_FALSE@@ENABLE_MOD_UCI_TRUE@libhawk_uci_la_CFLAGS = $(CFLAGS_COMMON)
@@ -556,6 +577,9 @@ libhawk-mysql.la: $(libhawk_mysql_la_OBJECTS) $(libhawk_mysql_la_DEPENDENCIES) $
libhawk-sed.la: $(libhawk_sed_la_OBJECTS) $(libhawk_sed_la_DEPENDENCIES) $(EXTRA_libhawk_sed_la_DEPENDENCIES)
$(AM_V_CCLD)$(libhawk_sed_la_LINK) $(am_libhawk_sed_la_rpath) $(libhawk_sed_la_OBJECTS) $(libhawk_sed_la_LIBADD) $(LIBS)
libhawk-sqlite.la: $(libhawk_sqlite_la_OBJECTS) $(libhawk_sqlite_la_DEPENDENCIES) $(EXTRA_libhawk_sqlite_la_DEPENDENCIES)
$(AM_V_CCLD)$(libhawk_sqlite_la_LINK) $(am_libhawk_sqlite_la_rpath) $(libhawk_sqlite_la_OBJECTS) $(libhawk_sqlite_la_LIBADD) $(LIBS)
libhawk-uci.la: $(libhawk_uci_la_OBJECTS) $(libhawk_uci_la_DEPENDENCIES) $(EXTRA_libhawk_uci_la_DEPENDENCIES)
$(AM_V_CCLD)$(libhawk_uci_la_LINK) $(am_libhawk_uci_la_rpath) $(libhawk_uci_la_OBJECTS) $(libhawk_uci_la_LIBADD) $(LIBS)
@@ -569,6 +593,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_memc_la-mod-memc.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_mysql_la-mod-mysql.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_sed_la-mod-sed.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_sqlite_la-mod-sqlite.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhawk_uci_la-mod-uci.Plo@am__quote@ # am--include-marker
$(am__depfiles_remade):
@@ -629,6 +654,13 @@ libhawk_sed_la-mod-sed.lo: mod-sed.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhawk_sed_la_CPPFLAGS) $(CPPFLAGS) $(libhawk_sed_la_CFLAGS) $(CFLAGS) -c -o libhawk_sed_la-mod-sed.lo `test -f 'mod-sed.c' || echo '$(srcdir)/'`mod-sed.c
libhawk_sqlite_la-mod-sqlite.lo: mod-sqlite.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhawk_sqlite_la_CPPFLAGS) $(CPPFLAGS) $(libhawk_sqlite_la_CFLAGS) $(CFLAGS) -MT libhawk_sqlite_la-mod-sqlite.lo -MD -MP -MF $(DEPDIR)/libhawk_sqlite_la-mod-sqlite.Tpo -c -o libhawk_sqlite_la-mod-sqlite.lo `test -f 'mod-sqlite.c' || echo '$(srcdir)/'`mod-sqlite.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libhawk_sqlite_la-mod-sqlite.Tpo $(DEPDIR)/libhawk_sqlite_la-mod-sqlite.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mod-sqlite.c' object='libhawk_sqlite_la-mod-sqlite.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhawk_sqlite_la_CPPFLAGS) $(CPPFLAGS) $(libhawk_sqlite_la_CFLAGS) $(CFLAGS) -c -o libhawk_sqlite_la-mod-sqlite.lo `test -f 'mod-sqlite.c' || echo '$(srcdir)/'`mod-sqlite.c
libhawk_uci_la-mod-uci.lo: mod-uci.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhawk_uci_la_CPPFLAGS) $(CPPFLAGS) $(libhawk_uci_la_CFLAGS) $(CFLAGS) -MT libhawk_uci_la-mod-uci.lo -MD -MP -MF $(DEPDIR)/libhawk_uci_la-mod-uci.Tpo -c -o libhawk_uci_la-mod-uci.lo `test -f 'mod-uci.c' || echo '$(srcdir)/'`mod-uci.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libhawk_uci_la-mod-uci.Tpo $(DEPDIR)/libhawk_uci_la-mod-uci.Plo
@@ -774,6 +806,7 @@ distclean: distclean-am
-rm -f ./$(DEPDIR)/libhawk_memc_la-mod-memc.Plo
-rm -f ./$(DEPDIR)/libhawk_mysql_la-mod-mysql.Plo
-rm -f ./$(DEPDIR)/libhawk_sed_la-mod-sed.Plo
-rm -f ./$(DEPDIR)/libhawk_sqlite_la-mod-sqlite.Plo
-rm -f ./$(DEPDIR)/libhawk_uci_la-mod-uci.Plo
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
@@ -824,6 +857,7 @@ maintainer-clean: maintainer-clean-am
-rm -f ./$(DEPDIR)/libhawk_memc_la-mod-memc.Plo
-rm -f ./$(DEPDIR)/libhawk_mysql_la-mod-mysql.Plo
-rm -f ./$(DEPDIR)/libhawk_sed_la-mod-sed.Plo
-rm -f ./$(DEPDIR)/libhawk_sqlite_la-mod-sqlite.Plo
-rm -f ./$(DEPDIR)/libhawk_uci_la-mod-uci.Plo
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

View File

@@ -115,7 +115,7 @@ static sql_node_t* new_sql_node (hawk_rtx_t* rtx, sql_list_t* sql_list)
sql_node_t* sql_node;
sql_node = __new_sql_node(rtx, sql_list);
if (!sql_node) return HAWK_NULL;
if (HAWK_UNLIKELY(!sql_node)) return HAWK_NULL;
sql_node->mysql = mysql_init(HAWK_NULL);
if (!sql_node->mysql)
@@ -130,9 +130,9 @@ static sql_node_t* new_sql_node (hawk_rtx_t* rtx, sql_list_t* sql_list)
static void free_sql_node (hawk_rtx_t* rtx, sql_list_t* sql_list, sql_node_t* sql_node)
{
mysql_close (sql_node->mysql);
mysql_close(sql_node->mysql);
sql_node->mysql = HAWK_NULL;
__free_sql_node (rtx, sql_list, sql_node);
__free_sql_node(rtx, sql_list, sql_node);
}
static res_node_t* new_res_node (hawk_rtx_t* rtx, res_list_t* res_list, MYSQL_RES* res)
@@ -140,7 +140,7 @@ static res_node_t* new_res_node (hawk_rtx_t* rtx, res_list_t* res_list, MYSQL_RE
res_node_t* res_node;
res_node = __new_res_node(rtx, res_list);
if (!res_node) return HAWK_NULL;
if (HAWK_UNLIKELY(!res_node)) return HAWK_NULL;
res_node->res = res;
res_node->num_fields = mysql_num_fields(res);
@@ -398,7 +398,7 @@ static int fnc_open (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
/* ret may not be a statically managed number.
* error checking is required */
retv = hawk_rtx_makeintval(rtx, ret);
if (retv == HAWK_NULL)
if (HAWK_UNLIKELY(!retv))
{
if (sql_node) free_sql_node(rtx, sql_list, sql_node);
return -1;
@@ -1080,6 +1080,9 @@ static int fnc_free_result (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
return 0;
}
#define FETCH_ROW_ARRAY (1)
#define FETCH_ROW_MAP (2)
static int fnc_fetch_row (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
{
sql_list_t* sql_list;
@@ -1087,17 +1090,21 @@ static int fnc_fetch_row (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
res_node_t* res_node;
int ret = -1, take_rtx_err = 0;
hawk_val_t* row_map = HAWK_NULL;
hawk_int_t mode = FETCH_ROW_MAP;
sql_list = rtx_to_sql_list(rtx, fi);
res_list = rtx_to_res_list(rtx, fi);
res_node = get_res_list_node_with_arg(rtx, sql_list, res_list, hawk_rtx_getarg(rtx, 0));
if (res_node)
{
hawk_oow_t nargs;
MYSQL_ROW row;
unsigned int i;
hawk_val_t* row_val, * tmp;
int x;
nargs = hawk_rtx_getnargs(rtx);
row = mysql_fetch_row(res_node->res);
if (!row)
{
@@ -1106,8 +1113,17 @@ static int fnc_fetch_row (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
goto done;
}
row_map = hawk_rtx_makemapval(rtx);
if (!row_map)
if (nargs >= 3)
{
if (hawk_rtx_valtoint(rtx, hawk_rtx_getarg(rtx, 2), &mode) <= -1)
{
set_error_on_sql_list(rtx, sql_list, HAWK_T("illegal mode"));
goto done;
}
}
row_map = (mode == FETCH_ROW_MAP? hawk_rtx_makemapval(rtx): hawk_rtx_makearrval(rtx, -1));
if (HAWK_UNLIKELY(!row_map))
{
take_rtx_err = 1;
goto done;
@@ -1117,14 +1133,11 @@ static int fnc_fetch_row (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
for (i = 0; i < res_node->num_fields; )
{
hawk_ooch_t key_buf[HAWK_SIZEOF(hawk_int_t) * 8 + 2];
hawk_oow_t key_len;
if (row[i])
{
/* TODO: consider using make multi byte string - hawk_rtx_makembsstr depending on user options or depending on column types */
row_val = hawk_rtx_makestrvalwithbcstr(rtx, row[i]);
if (!row_val)
if (HAWK_UNLIKELY(!row_val))
{
take_rtx_err = 1;
goto done;
@@ -1137,14 +1150,27 @@ static int fnc_fetch_row (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
++i;
/* put it into the map */
key_len = hawk_int_to_oocstr(i, 10, HAWK_NULL, key_buf, HAWK_COUNTOF(key_buf)); /* TOOD: change this function to hawk_rtx_intxxxxx */
HAWK_ASSERT (key_len != (hawk_oow_t)-1);
if (mode == FETCH_ROW_MAP)
{
hawk_ooch_t key_buf[HAWK_SIZEOF(hawk_int_t) * 8 + 2];
hawk_oow_t key_len;
hawk_rtx_refupval(rtx, row_val);
tmp = hawk_rtx_setmapvalfld(rtx, row_map, key_buf, key_len, row_val);
hawk_rtx_refdownval(rtx, row_val);
if (!tmp)
/* put it into the map */
key_len = hawk_int_to_oocstr(i, 10, HAWK_NULL, key_buf, HAWK_COUNTOF(key_buf)); /* TOOD: change this function to hawk_rtx_intxxxxx */
HAWK_ASSERT (key_len != (hawk_oow_t)-1);
hawk_rtx_refupval(rtx, row_val);
tmp = hawk_rtx_setmapvalfld(rtx, row_map, key_buf, key_len, row_val);
hawk_rtx_refdownval(rtx, row_val);
}
else
{
hawk_rtx_refupval(rtx, row_val);
tmp = hawk_rtx_setarrvalfld(rtx, row_map, i, row_val);
hawk_rtx_refdownval(rtx, row_val);
}
if (HAWK_UNLIKELY(!tmp))
{
take_rtx_err = 1;
goto done;
@@ -1786,7 +1812,7 @@ static hawk_mod_fnc_tab_t fnctab[] =
{ HAWK_T("connect"), { { 4, 7, HAWK_NULL }, fnc_connect, 0 } },
{ HAWK_T("errmsg"), { { 0, 0, HAWK_NULL }, fnc_errmsg, 0 } },
{ HAWK_T("escape_string"), { { 3, 3, HAWK_T("vvr") }, fnc_escape_string, 0 } },
{ HAWK_T("fetch_row"), { { 2, 2, HAWK_T("vr") }, fnc_fetch_row, 0 } },
{ HAWK_T("fetch_row"), { { 2, 3, HAWK_T("vrv") }, fnc_fetch_row, 0 } },
{ HAWK_T("free_result"), { { 1, 1, HAWK_NULL }, fnc_free_result, 0 } },
/*{ HAWK_T("get_option"), { { 3, 3, HAWK_T("vr") }, fnc_get_option, 0 } },*/
{ HAWK_T("insert_id"), { { 2, 2, HAWK_T("vr") }, fnc_insert_id, 0 } },
@@ -1811,6 +1837,9 @@ static hawk_mod_fnc_tab_t fnctab[] =
static hawk_mod_int_tab_t inttab[] =
{
/* keep this table sorted for binary search in query(). */
{ HAWK_T("FETCH_ROW_ARRAY"), { FETCH_ROW_ARRAY } },
{ HAWK_T("FETCH_ROW_MAP"), { FETCH_ROW_MAP } },
{ HAWK_T("OPT_CONNECT_TIMEOUT"), { MYSQL_OPT_CONNECT_TIMEOUT } },
{ HAWK_T("OPT_READ_TIMEOUT"), { MYSQL_OPT_READ_TIMEOUT } },
#if defined(DUMMY_OPT_RECONNECT)

1166
mod/mod-sqlite.c Normal file

File diff suppressed because it is too large Load Diff

42
mod/mod-sqlite.h Normal file
View File

@@ -0,0 +1,42 @@
/*
* $Id$
*
Copyright (c) 2006-2020 Chung, Hyung-Hwan. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _HAWK_MOD_SQLITE_H_
#define _HAWK_MOD_SQLITE_H_
#include <hawk.h>
#if defined(__cplusplus)
extern "C" {
#endif
HAWK_EXPORT int hawk_mod_sqlite (hawk_mod_t* mod, hawk_t* hawk);
#if defined(__cplusplus)
}
#endif
#endif