]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add the "max-limits" utility program to the tools/ subdirectory.
authordrh <drh@noemail.net>
Mon, 6 Feb 2017 15:27:44 +0000 (15:27 +0000)
committerdrh <drh@noemail.net>
Mon, 6 Feb 2017 15:27:44 +0000 (15:27 +0000)
FossilOrigin-Name: c54173b6c1acbb41ed9c323099e94b8e02c6c895

manifest
manifest.uuid
tool/max-limits.c [new file with mode: 0644]

index bd1b152de9471954fbc34418ec8293e7e25bfe45..ba5d6d8cf1aedf4c50752e346e3186361543b0d3 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sbug\sin\skvtest\scausing\s"init\s--variance\s0"\sruns\sto\sgenerate\ssingle\sbyte\nblob\svalues\sonly.
-D 2017-02-06T07:37:50.092
+C Add\sthe\s"max-limits"\sutility\sprogram\sto\sthe\stools/\ssubdirectory.
+D 2017-02-06T15:27:44.567
 F Makefile.in 5f415e7867296d678fed2e6779aea10c1318b4bc
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc ba953c8921fc7e18333f61898007206de7e23964
@@ -1485,6 +1485,7 @@ F tool/lempar.c db1bdb4821f2d8fbd76e577cf3ab18642c8d08d1
 F tool/libvers.c caafc3b689638a1d88d44bc5f526c2278760d9b9
 F tool/loadfts.c c3c64e4d5e90e8ba41159232c2189dba4be7b862
 F tool/logest.c 11346aa019e2e77a00902aa7d0cabd27bd2e8cca
+F tool/max-limits.c cbb635fbb37ae4d05f240bfb5b5270bb63c54439
 F tool/mkautoconfamal.sh e855df211ecbcc7131dee817110ff386cfb112f7
 F tool/mkkeywordhash.c f7f3b342211ac6a14258b9726d5b97cf4f548f22
 F tool/mkmsvcmin.tcl 2f12f7fa8858bbe61cf81820a2da96c79ed1ca8d
@@ -1553,7 +1554,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 853a58a75ecbd01ebbf7e07fbd8c4fc9bef54a99
-R 921673f8e8c6498440ee3e75a7e902ee
-U dan
-Z ce0aba82a1b0f2c7c9c23b4307d78840
+P 6b0276f968d3c6430076c6e540907cf840d0f398
+R f80944376543a94e77dae99832d50174
+U drh
+Z ae78f6b03eb9477204e774bb8b71a31e
index 91838993f72f49cbe02b01158da9059e4791790d..c191fc2bb52c8f0ff450c5d91ecdbdfa655b0a95 100644 (file)
@@ -1 +1 @@
-6b0276f968d3c6430076c6e540907cf840d0f398
\ No newline at end of file
+c54173b6c1acbb41ed9c323099e94b8e02c6c895
\ No newline at end of file
diff --git a/tool/max-limits.c b/tool/max-limits.c
new file mode 100644 (file)
index 0000000..d019974
--- /dev/null
@@ -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);
+  } 
+}