Tue, 01 Sep 2009 13:15:02 +0000
Add __tostring method to connection and statement objects.
1 | 1 | #include "dbd_sqlite3.h" |
2 | ||
3 | int dbd_sqlite3_statement_create(lua_State *L, connection_t *conn, const char *sql_query); | |
4 | ||
13
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
5 | static int run(connection_t *conn, const char *command) { |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
6 | int res = sqlite3_exec(conn->sqlite, command, NULL, NULL, NULL); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
7 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
8 | return res != SQLITE_OK; |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
9 | } |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
10 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
11 | static int commit(connection_t *conn) { |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
12 | return run(conn, "COMMIT"); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
13 | } |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
14 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
15 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
16 | static int begin(connection_t *conn) { |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
17 | return run(conn, "BEGIN"); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
18 | } |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
19 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
20 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
21 | static int rollback(connection_t *conn) { |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
22 | return run(conn, "ROLLBACK"); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
23 | } |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
24 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
25 | |
2 | 26 | /* |
3 | 27 | * connection,err = DBD.SQLite3.New(dbfile) |
2 | 28 | */ |
1 | 29 | static int connection_new(lua_State *L) { |
30 | int n = lua_gettop(L); | |
31 | ||
32 | const char *db = NULL; | |
33 | connection_t *conn = NULL; | |
34 | ||
35 | /* db */ | |
9 | 36 | switch(n) { |
37 | default: | |
14 | 38 | /* |
39 | * db is the only mandatory parameter | |
40 | */ | |
41 | db = luaL_checkstring(L, 1); | |
1 | 42 | } |
43 | ||
44 | conn = (connection_t *)lua_newuserdata(L, sizeof(connection_t)); | |
45 | ||
3 | 46 | if (sqlite3_open(db, &conn->sqlite) != SQLITE_OK) { |
1 | 47 | lua_pushnil(L); |
4 | 48 | lua_pushfstring(L, DBI_ERR_CONNECTION_FAILED, sqlite3_errmsg(conn->sqlite)); |
3 | 49 | return 2; |
1 | 50 | } |
51 | ||
13
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
52 | conn->autocommit = 0; |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
53 | begin(conn); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
54 | |
3 | 55 | luaL_getmetatable(L, DBD_SQLITE_CONNECTION); |
56 | lua_setmetatable(L, -2); | |
57 | ||
1 | 58 | return 1; |
59 | } | |
60 | ||
2 | 61 | /* |
13
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
62 | * success = connection:autocommit(on) |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
63 | */ |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
64 | static int connection_autocommit(lua_State *L) { |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
65 | connection_t *conn = (connection_t *)luaL_checkudata(L, 1, DBD_SQLITE_CONNECTION); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
66 | int on = lua_toboolean(L, 2); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
67 | int err = 1; |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
68 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
69 | if (conn->sqlite) { |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
70 | if (on) |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
71 | err = rollback(conn); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
72 | else |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
73 | err = begin(conn); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
74 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
75 | conn->autocommit = on; |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
76 | } |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
77 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
78 | lua_pushboolean(L, !err); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
79 | return 1; |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
80 | } |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
81 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
82 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
83 | /* |
2 | 84 | * success = connection:close() |
85 | */ | |
1 | 86 | static int connection_close(lua_State *L) { |
87 | connection_t *conn = (connection_t *)luaL_checkudata(L, 1, DBD_SQLITE_CONNECTION); | |
88 | int disconnect = 0; | |
89 | ||
90 | if (conn->sqlite) { | |
3 | 91 | sqlite3_close(conn->sqlite); |
92 | disconnect = 1; | |
93 | conn->sqlite = NULL; | |
1 | 94 | } |
95 | ||
96 | lua_pushboolean(L, disconnect); | |
97 | return 1; | |
98 | } | |
99 | ||
13
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
100 | /* |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
101 | * success = connection:commit() |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
102 | */ |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
103 | static int connection_commit(lua_State *L) { |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
104 | connection_t *conn = (connection_t *)luaL_checkudata(L, 1, DBD_SQLITE_CONNECTION); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
105 | int err = 1; |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
106 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
107 | if (conn->sqlite) { |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
108 | commit(conn); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
109 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
110 | if (!conn->autocommit) |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
111 | err = begin(conn); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
112 | else |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
113 | err = 1; |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
114 | } |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
115 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
116 | lua_pushboolean(L, !err); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
117 | return 1; |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
118 | } |
3 | 119 | |
2 | 120 | /* |
121 | * ok = connection:ping() | |
122 | */ | |
1 | 123 | static int connection_ping(lua_State *L) { |
124 | connection_t *conn = (connection_t *)luaL_checkudata(L, 1, DBD_SQLITE_CONNECTION); | |
125 | int ok = 0; | |
126 | ||
127 | if (conn->sqlite) { | |
128 | ok = 1; | |
129 | } | |
130 | ||
131 | lua_pushboolean(L, ok); | |
132 | return 1; | |
133 | } | |
134 | ||
2 | 135 | /* |
3 | 136 | * statement,err = connection:prepare(sql_str) |
2 | 137 | */ |
1 | 138 | static int connection_prepare(lua_State *L) { |
139 | connection_t *conn = (connection_t *)luaL_checkudata(L, 1, DBD_SQLITE_CONNECTION); | |
140 | ||
141 | if (conn->sqlite) { | |
142 | return dbd_sqlite3_statement_create(L, conn, luaL_checkstring(L, 2)); | |
143 | } | |
144 | ||
145 | lua_pushnil(L); | |
4 | 146 | lua_pushstring(L, DBI_ERR_DB_UNAVAILABLE); |
3 | 147 | return 2; |
1 | 148 | } |
149 | ||
2 | 150 | /* |
22 | 151 | * quoted = connection:quote(str) |
152 | */ | |
153 | static int connection_quote(lua_State *L) { | |
154 | connection_t *conn = (connection_t *)luaL_checkudata(L, 1, DBD_SQLITE_CONNECTION); | |
155 | size_t len; | |
156 | const char *from = luaL_checklstring(L, 2, &len); | |
157 | char *to; | |
158 | ||
159 | if (!conn->sqlite) { | |
160 | luaL_error(L, DBI_ERR_DB_UNAVAILABLE); | |
161 | } | |
162 | ||
163 | to = sqlite3_mprintf("%q", from); | |
164 | ||
165 | lua_pushstring(L, to); | |
166 | sqlite3_free(to); | |
167 | ||
168 | return 1; | |
169 | } | |
170 | ||
171 | /* | |
13
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
172 | * success = connection:rollback() |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
173 | */ |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
174 | static int connection_rollback(lua_State *L) { |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
175 | connection_t *conn = (connection_t *)luaL_checkudata(L, 1, DBD_SQLITE_CONNECTION); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
176 | int err = 1; |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
177 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
178 | if (conn->sqlite) { |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
179 | rollback(conn); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
180 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
181 | if (!conn->autocommit) |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
182 | err = begin(conn); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
183 | else |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
184 | err = 1; |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
185 | } |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
186 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
187 | lua_pushboolean(L, !err); |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
188 | return 1; |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
189 | } |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
190 | |
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
191 | /* |
2 | 192 | * __gc |
193 | */ | |
1 | 194 | static int connection_gc(lua_State *L) { |
195 | /* always close the connection */ | |
196 | connection_close(L); | |
197 | ||
198 | return 0; | |
199 | } | |
200 | ||
32
03ed0ca09837
Add __tostring method to connection and statement objects.
nrich@ii.net
parents:
22
diff
changeset
|
201 | /* |
03ed0ca09837
Add __tostring method to connection and statement objects.
nrich@ii.net
parents:
22
diff
changeset
|
202 | * __tostring |
03ed0ca09837
Add __tostring method to connection and statement objects.
nrich@ii.net
parents:
22
diff
changeset
|
203 | */ |
03ed0ca09837
Add __tostring method to connection and statement objects.
nrich@ii.net
parents:
22
diff
changeset
|
204 | static int connection_tostring(lua_State *L) { |
03ed0ca09837
Add __tostring method to connection and statement objects.
nrich@ii.net
parents:
22
diff
changeset
|
205 | connection_t *conn = (connection_t *)luaL_checkudata(L, 1, DBD_SQLITE_CONNECTION); |
03ed0ca09837
Add __tostring method to connection and statement objects.
nrich@ii.net
parents:
22
diff
changeset
|
206 | |
03ed0ca09837
Add __tostring method to connection and statement objects.
nrich@ii.net
parents:
22
diff
changeset
|
207 | lua_pushfstring(L, "%s: %p", DBD_SQLITE_CONNECTION, conn); |
03ed0ca09837
Add __tostring method to connection and statement objects.
nrich@ii.net
parents:
22
diff
changeset
|
208 | |
03ed0ca09837
Add __tostring method to connection and statement objects.
nrich@ii.net
parents:
22
diff
changeset
|
209 | return 1; |
03ed0ca09837
Add __tostring method to connection and statement objects.
nrich@ii.net
parents:
22
diff
changeset
|
210 | } |
03ed0ca09837
Add __tostring method to connection and statement objects.
nrich@ii.net
parents:
22
diff
changeset
|
211 | |
2 | 212 | int dbd_sqlite3_connection(lua_State *L) { |
213 | /* | |
214 | * instance methods | |
215 | */ | |
216 | static const luaL_Reg connection_methods[] = { | |
13
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
217 | {"autocommit", connection_autocommit}, |
2 | 218 | {"close", connection_close}, |
13
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
219 | {"commit", connection_commit}, |
2 | 220 | {"ping", connection_ping}, |
221 | {"prepare", connection_prepare}, | |
22 | 222 | {"quote", connection_quote}, |
13
10c8c6f0da14
Added connection:autocommit(), connection:commit(), and connection:rollback() to control transactions.
nrich@ii.net
parents:
9
diff
changeset
|
223 | {"rollback", connection_rollback}, |
2 | 224 | {NULL, NULL} |
225 | }; | |
1 | 226 | |
2 | 227 | /* |
228 | * class methods | |
229 | */ | |
230 | static const luaL_Reg connection_class_methods[] = { | |
231 | {"New", connection_new}, | |
232 | {NULL, NULL} | |
233 | }; | |
1 | 234 | |
235 | luaL_newmetatable(L, DBD_SQLITE_CONNECTION); | |
236 | luaL_register(L, 0, connection_methods); | |
237 | lua_pushvalue(L,-1); | |
238 | lua_setfield(L, -2, "__index"); | |
239 | ||
240 | lua_pushcfunction(L, connection_gc); | |
241 | lua_setfield(L, -2, "__gc"); | |
242 | ||
32
03ed0ca09837
Add __tostring method to connection and statement objects.
nrich@ii.net
parents:
22
diff
changeset
|
243 | lua_pushcfunction(L, connection_tostring); |
03ed0ca09837
Add __tostring method to connection and statement objects.
nrich@ii.net
parents:
22
diff
changeset
|
244 | lua_setfield(L, -2, "__tostring"); |
03ed0ca09837
Add __tostring method to connection and statement objects.
nrich@ii.net
parents:
22
diff
changeset
|
245 | |
1 | 246 | luaL_register(L, DBD_SQLITE_CONNECTION, connection_class_methods); |
247 | ||
248 | return 1; | |
249 | } |