added the sqlite module
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
1166
mod/mod-sqlite.c
Normal file
File diff suppressed because it is too large
Load Diff
42
mod/mod-sqlite.h
Normal file
42
mod/mod-sqlite.h
Normal 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
|
||||
Reference in New Issue
Block a user