diff --git a/storage/sqlite/ext/half.c b/storage/sqlite/ext/half.c new file mode 100644 index 00000000..5c746314 --- /dev/null +++ b/storage/sqlite/ext/half.c @@ -0,0 +1,30 @@ +/* Add your header comment here */ + +#include +SQLITE_EXTENSION_INIT1 + +/* +** The half() SQL function returns half of its input value. +*/ +static void halfFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + sqlite3_result_double(context, 0.5*sqlite3_value_double(argv[0])); +} + +/* SQLite invokes this routine once when it loads the extension. +** Create new functions, collating sequences, and virtual table +** modules here. This is usually the only exported symbol in +** the shared library. +*/ +int sqlite3_extension_init( + sqlite3 *db, + char **pzErrMsg, + const sqlite3_api_routines *pApi +){ + SQLITE_EXTENSION_INIT2(pApi) + sqlite3_create_function(db, "half", 1, SQLITE_ANY, 0, halfFunc, 0, 0); + return 0; +} diff --git a/storage/sqlite/ext/half.dylib b/storage/sqlite/ext/half.dylib new file mode 100755 index 00000000..50bf666d Binary files /dev/null and b/storage/sqlite/ext/half.dylib differ