[vala] sqlite3: add binding for user defined function API



commit 62add03a15bb9ba9eeb58c1de8a5c1a421ff068c
Author: Evan Nemerson <evan coeus-group com>
Date:   Sat Apr 10 10:35:59 2010 -0700

    sqlite3: add binding for user defined function API

 vapi/sqlite3.vapi |   65 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 65 insertions(+), 0 deletions(-)
---
diff --git a/vapi/sqlite3.vapi b/vapi/sqlite3.vapi
index b592527..1e725e0 100644
--- a/vapi/sqlite3.vapi
+++ b/vapi/sqlite3.vapi
@@ -49,6 +49,8 @@ namespace Sqlite {
 		public void progress_handler (int n_opcodes, Sqlite.ProgressCallback? progress_handler);
 		public void commit_hook (CommitCallback? commit_hook);
 		public void rollback_hook (RollbackCallback? rollback_hook);
+		[CCode (simple_generics = true)]
+		public int create_function (string zFunctionName, int nArg, int eTextRep, void * user_data, UserFuncCallback? xFunc, UserFuncCallback? xStep, UserFuncFinishCallback? xFinal);
 	}
 
 	[CCode (instance_pos = 0)]
@@ -58,6 +60,10 @@ namespace Sqlite {
 	public delegate int ProgressCallback ();
 	public delegate int CommitCallback ();
 	public delegate void RollbackCallback ();
+	[CCode (has_target = false)]
+	public delegate void UserFuncCallback (Sqlite.Context context, [CCode (array_length_pos = 1.1)] Sqlite.Value[] values);
+	[CCode (has_target = false)]
+	public delegate void UserFuncFinishCallback (Sqlite.Context context);
 
 	/* Dynamically Typed Value Object */
 	[Compact]
@@ -162,6 +168,36 @@ namespace Sqlite {
 	public const int MUTEX_FAST;
 	[CCode (cname = "SQLITE_MUTEX_RECURSIVE")]
 	public const int MUTEX_RECURSIVE;
+	[CCode (cname = "SQLITE_UTF8")]
+	public const int UTF8;
+	[CCode (cname = "SQLITE_UTF16LE")]
+	public const int UTF16LE;
+	[CCode (cname = "SQLITE_UTF16BE")]
+	public const int UTF16BE;
+	[CCode (cname = "SQLITE_UTF16")]
+	public const int UTF16;
+	[CCode (cname = "SQLITE_ANY")]
+	public const int ANY;
+	[CCode (cname = "SQLITE_UTF16_ALIGNED")]
+	public const int UTF16_ALIGNED;
+
+	[CCode (cname = "int", cprefix = "SQLITE_STATUS_")]
+	public enum Status {
+		MEMORY_USED,
+		PAGECACHE_USED,
+		PAGECACHE_OVERFLOW,
+		SCRATCH_USED,
+		SCRATCH_OVERFLOW,
+		MALLOC_SIZE,
+		PARSER_STACK,
+		PAGECACHE_SIZE,
+		SCRATCH_SIZE,
+
+		[CCode (cname = "SQLITE_STMTSTATUS_FULLSCAN_STEP")]
+		STMT_FULLSCAN_STEP,
+		[CCode (cname = "SQLITE_STMTSTATUS_SORT")]
+		STMT_SORT
+	}
 
 	/* SQL Statement Object */
 	[Compact]
@@ -175,6 +211,8 @@ namespace Sqlite {
 		public int data_count ();
 		public unowned Database db_handle ();
 		public int reset ();
+		[CCode (cname = "sqlite3_stmt_status")]
+		public int status (Sqlite.Status op, int resetFlg);
 		public int step ();
 		public int bind_blob (int index, void* value, int n, GLib.DestroyNotify destroy_notify);
 		public int bind_double (int index, double value);
@@ -205,5 +243,32 @@ namespace Sqlite {
 		public int @try ();
 		public void leave ();
 	}
+
+	[Compact, CCode (cname = "sqlite3_context", cprefix = "sqlite3_")]
+	public class Context {
+		public void result_blob (uint8[] data, GLib.DestroyNotify? destroy_notify = GLib.g_free);
+		public void result_double (double value);
+		public void result_error (string value, int error_code);
+		public void result_error_toobig ();
+		public void result_error_nomem ();
+		public void result_error_code (int error_code);
+		public void result_int (int value);
+		public void result_int64 (int64 value);
+		public void result_null ();
+		public void result_text (string value, int length = -1, GLib.DestroyNotify? destroy_notify = GLib.g_free);
+		public void result_value (Sqlite.Value value);
+		public void result_zeroblob (int n);
+
+		[CCode (simple_generics = true)]
+		public unowned T user_data<T> ();
+		[CCode (simple_generics = true)]
+		public void set_auxdata<T> (int N, owned T data);
+		[CCode (simple_generics = true)]
+		public unowned T get_auxdata<T> (int N);
+		[CCode (cname = "sqlite3_context_db_handle")]
+		public unowned Database db_handle ();
+		[CCode (cname = "sqlite3_aggregate_context")]
+		public void * aggregate (int n_bytes);
+	}
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]