Add an extra example extension
This commit is contained in:
@@ -58,6 +58,9 @@
|
|||||||
"$CC" -c subext.c
|
"$CC" -c subext.c
|
||||||
"$AR" rcs libsubext.a subext.o
|
"$AR" rcs libsubext.a subext.o
|
||||||
|
|
||||||
|
"$CC" -c multext.c
|
||||||
|
"$AR" rcs libmultext.a multext.o
|
||||||
|
|
||||||
runHook postBuild
|
runHook postBuild
|
||||||
'';
|
'';
|
||||||
|
|
||||||
@@ -83,6 +86,10 @@
|
|||||||
library = "${sqlite-example-exts-static}/lib/libsubext.a";
|
library = "${sqlite-example-exts-static}/lib/libsubext.a";
|
||||||
init = "sqlite3_subext_init";
|
init = "sqlite3_subext_init";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
library = "${sqlite-example-exts-static}/lib/libmultext.a";
|
||||||
|
init = "sqlite3_multext_init";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
#include <sqlite3ext.h>
|
||||||
|
|
||||||
|
SQLITE_EXTENSION_INIT1
|
||||||
|
|
||||||
|
static void mult_func(
|
||||||
|
sqlite3_context *ctx,
|
||||||
|
int argc,
|
||||||
|
sqlite3_value **argv
|
||||||
|
) {
|
||||||
|
if (argc != 2) {
|
||||||
|
sqlite3_result_null(ctx);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int a = sqlite3_value_int(argv[0]);
|
||||||
|
int b = sqlite3_value_int(argv[1]);
|
||||||
|
|
||||||
|
sqlite3_result_int(ctx, a * b);
|
||||||
|
}
|
||||||
|
|
||||||
|
int sqlite3_multext_init(
|
||||||
|
sqlite3 *db,
|
||||||
|
char **pzErrMsg,
|
||||||
|
const sqlite3_api_routines *pApi
|
||||||
|
) {
|
||||||
|
SQLITE_EXTENSION_INIT2(pApi);
|
||||||
|
|
||||||
|
return sqlite3_create_function(
|
||||||
|
db,
|
||||||
|
"mymult",
|
||||||
|
2,
|
||||||
|
SQLITE_UTF8 | SQLITE_DETERMINISTIC,
|
||||||
|
0,
|
||||||
|
mult_func,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user