| Index: third_party/sqlite/src/tool/max-limits.c
|
| diff --git a/third_party/sqlite/src/tool/max-limits.c b/third_party/sqlite/src/tool/max-limits.c
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d019974426d06c8b24449688d6cf3b5b7aa93fb5
|
| --- /dev/null
|
| +++ b/third_party/sqlite/src/tool/max-limits.c
|
| @@ -0,0 +1,41 @@
|
| +/*
|
| +** Link this program against an SQLite library of unknown provenance in order
|
| +** to display the compile-time maximum values for various settings.
|
| +*/
|
| +#include "sqlite3.h"
|
| +#include <stdio.h>
|
| +
|
| +static const struct {
|
| + int eCode;
|
| + char *zName;
|
| +} aLimit[] = {
|
| + { SQLITE_LIMIT_LENGTH, "SQLITE_MAX_LENGTH" },
|
| + { SQLITE_LIMIT_SQL_LENGTH, "SQLITE_MAX_SQL_LENGTH" },
|
| + { SQLITE_LIMIT_COLUMN, "SQLITE_MAX_COLUMN" },
|
| + { SQLITE_LIMIT_EXPR_DEPTH, "SQLITE_MAX_EXPR_DEPTH" },
|
| + { SQLITE_LIMIT_COMPOUND_SELECT, "SQLITE_MAX_COMPOUND_SELECT" },
|
| + { SQLITE_LIMIT_VDBE_OP, "SQLITE_MAX_VDBE_OP" },
|
| + { SQLITE_LIMIT_FUNCTION_ARG, "SQLITE_MAX_FUNCTION_ARG" },
|
| + { SQLITE_LIMIT_ATTACHED, "SQLITE_MAX_ATTACHED" },
|
| + { SQLITE_LIMIT_LIKE_PATTERN_LENGTH, "SQLITE_MAX_LIKE_PATTERN_LENGTH" },
|
| + { SQLITE_LIMIT_VARIABLE_NUMBER, "SQLITE_MAX_VARIABLE_NUMBER" },
|
| + { SQLITE_LIMIT_TRIGGER_DEPTH, "SQLITE_MAX_TRIGGER_DEPTH" },
|
| + { SQLITE_LIMIT_WORKER_THREADS, "SQLITE_MAX_WORKER_THREADS" },
|
| +};
|
| +
|
| +static int maxLimit(sqlite3 *db, int eCode){
|
| + int iOrig = sqlite3_limit(db, eCode, 0x7fffffff);
|
| + return sqlite3_limit(db, eCode, iOrig);
|
| +}
|
| +
|
| +int main(int argc, char **argv){
|
| + sqlite3 *db;
|
| + int j, rc;
|
| + rc = sqlite3_open(":memory:", &db);
|
| + if( rc==SQLITE_OK ){
|
| + for(j=0; j<sizeof(aLimit)/sizeof(aLimit[0]); j++){
|
| + printf("%-35s %10d\n", aLimit[j].zName, maxLimit(db, aLimit[j].eCode));
|
| + }
|
| + sqlite3_close(db);
|
| + }
|
| +}
|
|
|