Skip to content

Commit 3231d2d

Browse files
committed
Merge pull request #172 from TouchStar/master
Added SourceID support throughout platforms (marshals to sqlite3_sourceid API)
2 parents f008229 + bbda6b5 commit 3231d2d

File tree

13 files changed

+61
-4
lines changed

13 files changed

+61
-4
lines changed

src/SQLite.Net.Platform.Generic/SQLiteApiGeneric.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ public int LibVersionNumber()
2525
return SQLiteApiGenericInternal.sqlite3_libversion_number();
2626
}
2727

28+
public string SourceID()
29+
{
30+
return Marshal.PtrToStringAuto(SQLiteApiGenericInternal.sqlite3_sourceid());
31+
}
32+
2833
public Result EnableLoadExtension(IDbHandle db, int onoff)
2934
{
3035
var internalDbHandle = (DbHandle) db;

src/SQLite.Net.Platform.Generic/SQLiteApiGenericInternal.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,9 @@ public static extern Result sqlite3_prepare_v2(IntPtr db,
155155
[DllImport("sqlite3", EntryPoint = "sqlite3_libversion_number", CallingConvention = CallingConvention.Cdecl)]
156156
public static extern int sqlite3_libversion_number();
157157

158+
[DllImport("sqlite3", EntryPoint = "sqlite3_sourceid", CallingConvention = CallingConvention.Cdecl)]
159+
public static extern IntPtr sqlite3_sourceid();
160+
158161
#region Backup
159162

160163
[DllImport("sqlite3", EntryPoint = "sqlite3_backup_init", CallingConvention = CallingConvention.Cdecl)]

src/SQLite.Net.Platform.Win32/SQLiteApiWin32.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ public int LibVersionNumber()
2424
{
2525
return SQLiteApiWin32Internal.sqlite3_libversion_number();
2626
}
27+
28+
public string SourceID()
29+
{
30+
return Marshal.PtrToStringAuto(SQLiteApiWin32Internal.sqlite3_sourceid());
31+
}
2732

2833
public Result EnableLoadExtension(IDbHandle db, int onoff)
2934
{

src/SQLite.Net.Platform.Win32/SQliteApiWin32Internal.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,9 @@ public static byte[] ColumnByteArray(IntPtr stmt, int index)
191191
[DllImport("SQLite.Interop.dll", EntryPoint = "sqlite3_libversion_number", CallingConvention = CallingConvention.Cdecl)]
192192
public static extern int sqlite3_libversion_number();
193193

194+
[DllImport("SQLite.Interop.dll", EntryPoint = "sqlite3_sourceid", CallingConvention = CallingConvention.Cdecl)]
195+
public static extern IntPtr sqlite3_sourceid();
196+
194197
#region Backup
195198

196199
[DllImport("SQLite.Interop.dll", EntryPoint = "sqlite3_backup_init", CallingConvention = CallingConvention.Cdecl)]

src/SQLite.Net.Platform.WinRT/SQLiteApiWinRT.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,11 @@ public int LibVersionNumber()
157157
return SQLite3.sqlite3_libversion_number();
158158
}
159159

160+
public string SourceID()
161+
{
162+
return Marshal.PtrToStringAuto(SQLite3.sqlite3_sourceid());
163+
}
164+
160165
public Result EnableLoadExtension(IDbHandle db, int onoff)
161166
{
162167
return (Result)1;
@@ -451,6 +456,9 @@ public static byte[] ColumnByteArray(IntPtr stmt, int index)
451456
[DllImport("sqlite3", EntryPoint = "sqlite3_libversion_number", CallingConvention = CallingConvention.Cdecl)]
452457
public static extern int sqlite3_libversion_number();
453458

459+
[DllImport("sqlite3", EntryPoint = "sqlite3_sourceid", CallingConvention = CallingConvention.Cdecl)]
460+
public static extern IntPtr sqlite3_sourceid();
461+
454462
#region Backup
455463

456464
[DllImport("sqlite3", EntryPoint = "sqlite3_backup_init", CallingConvention = CallingConvention.Cdecl)]

src/SQLite.Net.Platform.WindowsPhone8/SQLiteApiWP8.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@ public int LibVersionNumber()
3131
// return Sqlite3.sqlite3_libversion_number();
3232
}
3333

34+
public string SourceID()
35+
{
36+
// not supported
37+
return String.Empty;
38+
// return Sqlite3.sqlite3_sourceid();
39+
}
40+
41+
3442
public Result EnableLoadExtension(IDbHandle db, int onoff)
3543
{
3644
var dbHandle = (DbHandle) db;

src/SQLite.Net.Platform.XamarinAndroid/SQLiteApiAndroid.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ public int LibVersionNumber()
2525
return SQLiteApiAndroidInternal.sqlite3_libversion_number();
2626
}
2727

28+
public string SourceID()
29+
{
30+
return Marshal.PtrToStringAuto(SQLiteApiAndroidInternal.sqlite3_sourceid());
31+
}
32+
2833
public Result EnableLoadExtension(IDbHandle db, int onoff)
2934
{
3035
var internalDbHandle = (DbHandle) db;

src/SQLite.Net.Platform.XamarinAndroid/SQLiteApiAndroidInternal.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@ public static extern int sqlite3_bind_text16(IntPtr stmt,
6262
[DllImport(DllName, EntryPoint = "sqlite3_close", CallingConvention = CallingConvention.Cdecl)]
6363
public static extern Result sqlite3_close(IntPtr db);
6464

65-
[DllImport("sqlite3", EntryPoint = "sqlite3_initialize", CallingConvention = CallingConvention.Cdecl)]
65+
[DllImport(DllName, EntryPoint = "sqlite3_initialize", CallingConvention = CallingConvention.Cdecl)]
6666
public static extern Result sqlite3_initialize();
6767

68-
[DllImport("sqlite3", EntryPoint = "sqlite3_shutdown", CallingConvention = CallingConvention.Cdecl)]
68+
[DllImport(DllName, EntryPoint = "sqlite3_shutdown", CallingConvention = CallingConvention.Cdecl)]
6969
public static extern Result sqlite3_shutdown();
7070

7171
[DllImport(DllName, EntryPoint = "sqlite3_column_blob", CallingConvention = CallingConvention.Cdecl)]
@@ -151,12 +151,15 @@ public static extern Result sqlite3_prepare_v2(IntPtr db,
151151
[DllImport(DllName, EntryPoint = "sqlite3_column_name16", CallingConvention = CallingConvention.Cdecl)]
152152
private static extern IntPtr sqlite3_column_name16(IntPtr stmt, int index);
153153

154-
[DllImport("sqlite3", EntryPoint = "sqlite3_extended_errcode", CallingConvention = CallingConvention.Cdecl)]
154+
[DllImport(DllName, EntryPoint = "sqlite3_extended_errcode", CallingConvention = CallingConvention.Cdecl)]
155155
public static extern ExtendedResult sqlite3_extended_errcode(IntPtr db);
156156

157-
[DllImport("sqlite3", EntryPoint = "sqlite3_libversion_number", CallingConvention = CallingConvention.Cdecl)]
157+
[DllImport(DllName, EntryPoint = "sqlite3_libversion_number", CallingConvention = CallingConvention.Cdecl)]
158158
public static extern int sqlite3_libversion_number();
159159

160+
[DllImport(DllName, EntryPoint = "sqlite3_sourceid", CallingConvention = CallingConvention.Cdecl)]
161+
public static extern IntPtr sqlite3_sourceid();
162+
160163
#region Backup
161164

162165
[DllImport(DllName, EntryPoint = "sqlite3_backup_init", CallingConvention = CallingConvention.Cdecl)]

src/SQLite.Net.Platform.XamarinIOS.Unified/SQLiteApiIOS.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ public int LibVersionNumber()
2424
{
2525
return SQLiteApiIOSInternal.sqlite3_libversion_number();
2626
}
27+
28+
public string SourceID()
29+
{
30+
return Marshal.PtrToStringAuto(SQLiteApiIOSInternal.sqlite3_sourceid());
31+
}
2732

2833
public Result EnableLoadExtension(IDbHandle db, int onoff)
2934
{

src/SQLite.Net.Platform.XamarinIOS.Unified/SQLiteApiIOSInternal.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,9 @@ public static extern Result sqlite3_prepare_v2(IntPtr db,
157157
[DllImport("sqlite3", EntryPoint = "sqlite3_libversion_number", CallingConvention = CallingConvention.Cdecl)]
158158
public static extern int sqlite3_libversion_number();
159159

160+
[DllImport("sqlite3", EntryPoint = "sqlite3_sourceid", CallingConvention = CallingConvention.Cdecl)]
161+
public static extern IntPtr sqlite3_sourceid();
162+
160163
#region Backup
161164

162165
[DllImport(DllName, EntryPoint = "sqlite3_backup_init", CallingConvention = CallingConvention.Cdecl)]

src/SQLite.Net.Platform.XamarinIOS/SQLiteApiIOS.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ public int LibVersionNumber() {
2020
return SQLiteApiIOSInternal.sqlite3_libversion_number();
2121
}
2222

23+
public string SourceID()
24+
{
25+
return Marshal.PtrToStringAuto(SQLiteApiIOSInternal.sqlite3_sourceid());
26+
}
27+
2328
public Result EnableLoadExtension(IDbHandle db, int onoff) {
2429
var internalDbHandle = (DbHandle)db;
2530
return SQLiteApiIOSInternal.sqlite3_enable_load_extension(internalDbHandle.DbPtr, onoff);

src/SQLite.Net.Platform.XamarinIOS/SQLiteApiIOSInternal.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,9 @@ public static extern Result sqlite3_prepare_v2(IntPtr db,
157157
[DllImport("sqlite3", EntryPoint = "sqlite3_libversion_number", CallingConvention = CallingConvention.Cdecl)]
158158
public static extern int sqlite3_libversion_number();
159159

160+
[DllImport("sqlite3", EntryPoint = "sqlite3_sourceid", CallingConvention = CallingConvention.Cdecl)]
161+
public static extern IntPtr sqlite3_sourceid();
162+
160163
#region Backup
161164

162165
[DllImport(DllName, EntryPoint = "sqlite3_backup_init", CallingConvention = CallingConvention.Cdecl)]

src/SQLite.Net/Interop/ISQLiteApi.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public interface ISQLiteApi
3232

3333
ExtendedResult ExtendedErrCode(IDbHandle db);
3434
int LibVersionNumber();
35+
string SourceID();
3536
Result EnableLoadExtension(IDbHandle db, int onoff);
3637
Result Close(IDbHandle db);
3738
Result Initialize();

0 commit comments

Comments
 (0)