Skip to content

Commit

Permalink
impr: allow function redefinition for crypto and stats extensions (#25)
Browse files Browse the repository at this point in the history
  • Loading branch information
nalgeon committed Dec 12, 2021
1 parent 7396fb3 commit 88e6ebe
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 34 deletions.
14 changes: 6 additions & 8 deletions src/sqlite3-crypto.c
Original file line number Diff line number Diff line change
Expand Up @@ -96,13 +96,11 @@ __declspec(dllexport)

int sqlite3_crypto_init(sqlite3* db, char** pzErrMsg, const sqlite3_api_routines* pApi) {
SQLITE_EXTENSION_INIT2(pApi);

static const int flags = SQLITE_UTF8 | SQLITE_INNOCUOUS | SQLITE_DETERMINISTIC;
int err_count = 0;
err_count += sqlite3_create_function(db, "md5", 1, flags, (void*)5, sqlite3_hash, 0, 0);
err_count += sqlite3_create_function(db, "sha1", 1, flags, (void*)1, sqlite3_hash, 0, 0);
err_count += sqlite3_create_function(db, "sha256", -1, flags, (void*)2256, sqlite3_hash, 0, 0);
err_count += sqlite3_create_function(db, "sha384", -1, flags, (void*)2384, sqlite3_hash, 0, 0);
err_count += sqlite3_create_function(db, "sha512", -1, flags, (void*)2512, sqlite3_hash, 0, 0);
return err_count ? SQLITE_ERROR : SQLITE_OK;
sqlite3_create_function(db, "md5", 1, flags, (void*)5, sqlite3_hash, 0, 0);
sqlite3_create_function(db, "sha1", 1, flags, (void*)1, sqlite3_hash, 0, 0);
sqlite3_create_function(db, "sha256", -1, flags, (void*)2256, sqlite3_hash, 0, 0);
sqlite3_create_function(db, "sha384", -1, flags, (void*)2384, sqlite3_hash, 0, 0);
sqlite3_create_function(db, "sha512", -1, flags, (void*)2512, sqlite3_hash, 0, 0);
return SQLITE_OK;
}
40 changes: 14 additions & 26 deletions src/sqlite3-stats.c
Original file line number Diff line number Diff line change
Expand Up @@ -483,30 +483,18 @@ __declspec(dllexport)
int sqlite3_stats_init(sqlite3* db, char** pzErrMsg, const sqlite3_api_routines* pApi) {
SQLITE_EXTENSION_INIT2(pApi);
static const int flags = SQLITE_UTF8 | SQLITE_INNOCUOUS;
int err_count = 0;
err_count +=
sqlite3_create_function(db, "stddev", 1, flags, 0, 0, varianceStep, stddevFinalize);
err_count +=
sqlite3_create_function(db, "stddev_samp", 1, flags, 0, 0, varianceStep, stddevFinalize);
err_count +=
sqlite3_create_function(db, "stddev_pop", 1, flags, 0, 0, varianceStep, stddevpopFinalize);
err_count +=
sqlite3_create_function(db, "variance", 1, flags, 0, 0, varianceStep, varianceFinalize);
err_count +=
sqlite3_create_function(db, "var_samp", 1, flags, 0, 0, varianceStep, varianceFinalize);
err_count +=
sqlite3_create_function(db, "var_pop", 1, flags, 0, 0, varianceStep, variancepopFinalize);
err_count += sqlite3_create_function(db, "mode", 1, flags, 0, 0, modeStep, modeFinalize);
err_count += sqlite3_create_function(db, "median", 1, flags, 0, 0, modeStep, medianFinalize);
err_count += sqlite3_create_function(db, "percentile_25", 1, flags, 0, 0, modeStep,
percentile_25Finalize);
err_count += sqlite3_create_function(db, "percentile_75", 1, flags, 0, 0, modeStep,
percentile_75Finalize);
err_count += sqlite3_create_function(db, "percentile_90", 1, flags, 0, 0, modeStep,
percentile_90Finalize);
err_count += sqlite3_create_function(db, "percentile_95", 1, flags, 0, 0, modeStep,
percentile_95Finalize);
err_count += sqlite3_create_function(db, "percentile_99", 1, flags, 0, 0, modeStep,
percentile_99Finalize);
return err_count ? SQLITE_ERROR : SQLITE_OK;
sqlite3_create_function(db, "stddev", 1, flags, 0, 0, varianceStep, stddevFinalize);
sqlite3_create_function(db, "stddev_samp", 1, flags, 0, 0, varianceStep, stddevFinalize);
sqlite3_create_function(db, "stddev_pop", 1, flags, 0, 0, varianceStep, stddevpopFinalize);
sqlite3_create_function(db, "variance", 1, flags, 0, 0, varianceStep, varianceFinalize);
sqlite3_create_function(db, "var_samp", 1, flags, 0, 0, varianceStep, varianceFinalize);
sqlite3_create_function(db, "var_pop", 1, flags, 0, 0, varianceStep, variancepopFinalize);
sqlite3_create_function(db, "mode", 1, flags, 0, 0, modeStep, modeFinalize);
sqlite3_create_function(db, "median", 1, flags, 0, 0, modeStep, medianFinalize);
sqlite3_create_function(db, "percentile_25", 1, flags, 0, 0, modeStep, percentile_25Finalize);
sqlite3_create_function(db, "percentile_75", 1, flags, 0, 0, modeStep, percentile_75Finalize);
sqlite3_create_function(db, "percentile_90", 1, flags, 0, 0, modeStep, percentile_90Finalize);
sqlite3_create_function(db, "percentile_95", 1, flags, 0, 0, modeStep, percentile_95Finalize);
sqlite3_create_function(db, "percentile_99", 1, flags, 0, 0, modeStep, percentile_99Finalize);
return SQLITE_OK;
}

0 comments on commit 88e6ebe

Please sign in to comment.