Added functions for sql_affected_rows and sql_error
authorAlan T. DeKok <aland@freeradius.org>
Tue, 14 Sep 2010 00:52:55 +0000 (02:52 +0200)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 17 Sep 2010 09:35:48 +0000 (11:35 +0200)
These look like they're not used right now, but they're worth having

src/modules/rlm_sql/drivers/rlm_sql_sqlite/sql_sqlite.c

index f4b6dc0..14466d9 100644 (file)
@@ -338,8 +338,15 @@ static int sql_free_result(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
  *               connection
  *
  *************************************************************************/
-static const char *sql_error(UNUSED SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
+static const char *sql_error(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
 {
+       rlm_sql_sqlite_sock *sqlite_sock = sqlsocket->conn;
+
+       if (sqlite_sock->pDb != NULL) {
+               return sqlite3_errmsg(sqlite_sock->pDb);
+       }
+
+       radlog(L_ERR, "rlm_sql_sqlite: Socket not connected");
        return NULL;
 }
 
@@ -405,12 +412,22 @@ static int sql_finish_select_query(SQLSOCK * sqlsocket, SQL_CONFIG *config)
  *
  *     Function: sql_affected_rows
  *
- *     Purpose: End the select query, such as freeing memory or result
+ *     Purpose: Requests the number of rows affected by the last executed 
+ *              statement 
  *
  *************************************************************************/
-static int sql_affected_rows(UNUSED SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
+static int sql_affected_rows(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
 {
-       return 0;
+       int result = -1;
+
+       rlm_sql_sqlite_sock *sqlite_sock = sqlsocket->conn;
+  
+       if (sqlite_sock->pDb != NULL) {
+               result = sqlite3_changes(sqlite_sock->pDb);     
+               DEBUG3("rlm_sql_sqlite: sql_affected_rows() = %i\n", result);
+       }  
+
+       return result;
 }