aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTetsuya Morimoto <tetsuya.morimoto@gmail.com>2017-11-05 08:47:52 +0900
committerTetsuya Morimoto <tetsuya.morimoto@gmail.com>2017-11-05 19:45:38 +0900
commitb07b06e15c31b3e80ca7ba244e946d619a8dc99a (patch)
treeec9f6bb5c71bb52069592006c272b6cbe0d154f3
parentsupport sqlite3_limit to get/set run time limit (diff)
downloadgolite-b07b06e15c31b3e80ca7ba244e946d619a8dc99a.tar.gz
golite-b07b06e15c31b3e80ca7ba244e946d619a8dc99a.tar.xz
update to call _sqlite3_limit as a wrapper instead of sqlite3_limit
-rw-r--r--sqlite3.go28
1 files changed, 26 insertions, 2 deletions
diff --git a/sqlite3.go b/sqlite3.go
index bcb6da0..a78d1c6 100644
--- a/sqlite3.go
+++ b/sqlite3.go
@@ -105,6 +105,30 @@ int compareTrampoline(void*, int, char*, int, char*);
int commitHookTrampoline(void*);
void rollbackHookTrampoline(void*);
void updateHookTrampoline(void*, int, char*, char*, sqlite3_int64);
+
+#ifdef SQLITE_LIMIT_WORKER_THREADS
+# define _SQLITE_HAS_LIMIT
+# define SQLITE_LIMIT_LENGTH 0
+# define SQLITE_LIMIT_SQL_LENGTH 1
+# define SQLITE_LIMIT_COLUMN 2
+# define SQLITE_LIMIT_EXPR_DEPTH 3
+# define SQLITE_LIMIT_COMPOUND_SELECT 4
+# define SQLITE_LIMIT_VDBE_OP 5
+# define SQLITE_LIMIT_FUNCTION_ARG 6
+# define SQLITE_LIMIT_ATTACHED 7
+# define SQLITE_LIMIT_LIKE_PATTERN_LENGTH 8
+# define SQLITE_LIMIT_VARIABLE_NUMBER 9
+# define SQLITE_LIMIT_TRIGGER_DEPTH 10
+# define SQLITE_LIMIT_WORKER_THREADS 11
+#endif
+
+static int _sqlite3_limit(sqlite3* db, int limitId, int newLimit) {
+#ifndef _SQLITE_HAS_LIMIT
+ return -1;
+#else
+ return sqlite3_limit(db, limitId, newLimit);
+#endif
+}
*/
import "C"
import (
@@ -847,14 +871,14 @@ const (
// GetLimit returns the current value of a run-time limit.
// See: sqlite3_limit, http://www.sqlite.org/c3ref/limit.html
func (c *SQLiteConn) GetLimit(id int) int {
- return int(C.sqlite3_limit(c.db, C.int(id), -1))
+ return int(C._sqlite3_limit(c.db, C.int(id), -1))
}
// SetLimit changes the value of a run-time limits.
// Then this method returns the prior value of the limit.
// See: sqlite3_limit, http://www.sqlite.org/c3ref/limit.html
func (c *SQLiteConn) SetLimit(id int, newVal int) int {
- return int(C.sqlite3_limit(c.db, C.int(id), C.int(newVal)))
+ return int(C._sqlite3_limit(c.db, C.int(id), C.int(newVal)))
}
// Close the statement.