nitlanguage
/
nit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rename `NativeString` to `CString`
[nit.git]
/
lib
/
sqlite3
/
native_sqlite3.nit
diff --git
a/lib/sqlite3/native_sqlite3.nit
b/lib/sqlite3/native_sqlite3.nit
index
f9ea7e4
..
8e49c96
100644
(file)
--- a/
lib/sqlite3/native_sqlite3.nit
+++ b/
lib/sqlite3/native_sqlite3.nit
@@
-22,9
+22,14
@@
in "C header" `{
#include <sqlite3.h>
`}
#include <sqlite3.h>
`}
+in "C" `{
+ // Return code of the last call to the constructor of `NativeSqlite3`
+ static int nit_sqlite_open_error = SQLITE_OK;
+`}
+
redef class Sys
# Last error raised when calling `Sqlite3::open`
redef class Sys
# Last error raised when calling `Sqlite3::open`
- var sqlite_open_error: nullable Sqlite3Code = null
+ fun sqlite_open_error: Sqlite3Code `{ return nit_sqlite_open_error; `}
end
extern class Sqlite3Code `{int`}
end
extern class Sqlite3Code `{int`}
@@
-73,7
+78,7
@@
extern class Sqlite3Code `{int`}
return err.to_s
end
return err.to_s
end
- private fun native_to_s: NativeString `{
+ private fun native_to_s: CString `{
#if SQLITE_VERSION_NUMBER >= 3007015
return (char *)sqlite3_errstr(self);
#else
#if SQLITE_VERSION_NUMBER >= 3007015
return (char *)sqlite3_errstr(self);
#else
@@
-90,7
+95,7
@@
extern class NativeStatement `{sqlite3_stmt*`}
return sqlite3_step(self);
`}
return sqlite3_step(self);
`}
- fun column_name(i: Int): NativeString `{
+ fun column_name(i: Int): CString `{
return (char *)sqlite3_column_name(self, i);
`}
return (char *)sqlite3_column_name(self, i);
`}
@@
-107,7
+112,7
@@
extern class NativeStatement `{sqlite3_stmt*`}
return sqlite3_column_int(self, i);
`}
return sqlite3_column_int(self, i);
`}
- fun column_text(i: Int): NativeString `{
+ fun column_text(i: Int): CString `{
return (char *)sqlite3_column_text(self, i);
`}
return (char *)sqlite3_column_text(self, i);
`}
@@
-133,25
+138,18
@@
end
extern class NativeSqlite3 `{sqlite3 *`}
# Open a connection to a database in UTF-8
extern class NativeSqlite3 `{sqlite3 *`}
# Open a connection to a database in UTF-8
- new open(filename: NativeString) import set_sys_sqlite_open_error `{
+ new open(filename: CString) `{
sqlite3 *self = NULL;
int err = sqlite3_open(filename, &self);
sqlite3 *self = NULL;
int err = sqlite3_open(filename, &self);
- NativeSqlite3_set_sys_sqlite_open_error(self, (void*)(long)err);
- // The previous cast is a hack, using non pointers in extern classes is not
- // yet in the spec of the FFI.
+ nit_sqlite_open_error = err;
return self;
`}
return self;
`}
- # Utility method to set `Sys.sqlite_open_error`
- private fun set_sys_sqlite_open_error(err: Sqlite3Code) do sys.sqlite_open_error = err
-
# Has this DB been correctly opened?
#
# To know if it has been closed or interrupted, you must check for errors with `error`.
fun is_valid: Bool do return not address_is_null
# Has this DB been correctly opened?
#
# To know if it has been closed or interrupted, you must check for errors with `error`.
fun is_valid: Bool do return not address_is_null
- fun destroy do close
-
# Close this connection
fun close `{
#if SQLITE_VERSION_NUMBER >= 3007014
# Close this connection
fun close `{
#if SQLITE_VERSION_NUMBER >= 3007014
@@
-165,12
+163,12
@@
extern class NativeSqlite3 `{sqlite3 *`}
`}
# Execute a SQL statement
`}
# Execute a SQL statement
- fun exec(sql: NativeString): Sqlite3Code `{
+ fun exec(sql: CString): Sqlite3Code `{
return sqlite3_exec(self, sql, NULL, NULL, NULL);
`}
# Prepare a SQL statement
return sqlite3_exec(self, sql, NULL, NULL, NULL);
`}
# Prepare a SQL statement
- fun prepare(sql: NativeString): NativeStatement `{
+ fun prepare(sql: CString): NativeStatement `{
sqlite3_stmt *stmt;
int res = sqlite3_prepare_v2(self, sql, -1, &stmt, 0);
if (res == SQLITE_OK)
sqlite3_stmt *stmt;
int res = sqlite3_prepare_v2(self, sql, -1, &stmt, 0);
if (res == SQLITE_OK)