#include #include #include #include SQLITE_EXTENSION_INIT1 static void streq(sqlite3_context *const ctx, const int argc, sqlite3_value **const argv) { assert(argc == 2); const char *const str1 = (const char *)sqlite3_value_text(argv[0]); const char *const str2 = (const char *)sqlite3_value_text(argv[1]); const bool equal = strcmp(str1, str2) == 0; const int result = equal ? 1 : 0; sqlite3_result_int(ctx, result); } int sqlite3_extension_init( sqlite3 *const db, const char *const *const errmsg, const sqlite3_api_routines *const api ) { SQLITE_EXTENSION_INIT2(api); return sqlite3_create_function( db, "streq", 2, SQLITE_UTF8, (void *)db, streq, NULL, NULL ); }